Zbotic Logo Zbotic Logo
  • Home
  • Shop
  • Sale
  • 3D Print Service
  • PCB Service
  • B2B
  • Blogs
  • Contact Us
0 0

View Wishlist Add all to cart

0 0
0 Shopping Cart
Shopping cart (0)
Subtotal: ₹0.00

View cartCheckout

  • Shop
  • About Us
  • Contact Us
  • Reseller
  • Blogs
020 69134444
1800 209 0998
[email protected]
Help Desk
Facebook Twitter Instagram Linkedin YouTube
Zbotic Logo Zbotic Logo
0 0

View Wishlist Add all to cart

0 0
0 Shopping Cart
Shopping cart (0)
Subtotal: ₹0.00

View cartCheckout

All departments
  • 3D Print Service
  • 3D Printer
  • Batteries & Chargers
  • Development Boards
  • Drone Parts
  • EBike parts
  • Sensor Modules
  • Electronic Components
  • Electronic Modules
  • IoT and Wireless
  • Mechanical Parts and Workbench Tools
  • Motors & Drivers & Pumps & Actuators
  • DIY and Robot Kits
  • Show more
  • Home
  • Shop
  • Sale
  • 3D Print Service
  • PCB Service
  • B2B
  • Blogs
  • Contact Us
Return to previous page
Home Motors & Actuators

Troubleshooting L298N: Motor Not Running, Overheating & Fixes

Troubleshooting L298N: Motor Not Running, Overheating & Fixes

March 11, 2026 /Posted byJayesh Jain / 0

The L298N dual H-bridge motor driver module is one of the most widely used motor control boards in the Indian maker community. It is affordable, capable of driving two DC motors or one stepper motor, and well-supported by Arduino libraries. However, it is also one of the most frequently misused components — forums and maker groups are full of questions like “my motor is not running” or “the L298N gets extremely hot after 5 minutes”. This comprehensive troubleshooting guide covers every common L298N problem, its root cause, and the exact fix you need.

Table of Contents

  1. L298N Module Overview
  2. Motor Not Running At All
  3. Motor Only Runs in One Direction
  4. L298N Overheating
  5. PWM Speed Control Not Working
  6. Voltage Drop and Motor Running Slow
  7. Stepper Motor Issues with L298N
  8. The Onboard 5V Regulator Problem
  9. Correct Wiring Reference
  10. When to Replace L298N
  11. Frequently Asked Questions

L298N Module Overview

The L298N IC is a bipolar H-bridge driver capable of driving two DC motors with up to 2A per channel (4A peak) at up to 46V. The blue module sold widely in India combines the L298N IC with a 78M05 voltage regulator (providing 5V from the motor supply for Arduino logic) and two sets of screw terminals for motor outputs and power inputs.

Key module pins and their functions:

  • IN1, IN2: Direction control for Motor A (HIGH/LOW combinations)
  • IN3, IN4: Direction control for Motor B
  • ENA: Enable/PWM pin for Motor A (HIGH = full speed; PWM = variable speed)
  • ENB: Enable/PWM pin for Motor B
  • 12V: Motor supply (up to 46V, minimum ~6V)
  • 5V: Logic supply out (or 5V in if jumper removed)
  • GND: Common ground (critical!)
  • OUT1, OUT2: Motor A outputs
  • OUT3, OUT4: Motor B outputs

There are two small yellow jumpers on the module — ENA and ENB jumpers. When installed, they tie the enable pins permanently HIGH (full speed, no PWM). Remove them to control speed via PWM from Arduino. This single fact is responsible for a huge number of “my motor won’t spin” complaints.

Motor Not Running At All

This is the most common L298N complaint. Work through this checklist systematically:

1. Check the ENA/ENB jumpers

If you have connected ENA/ENB to Arduino PWM pins, you MUST remove the yellow enable jumpers. If the jumpers are installed and you connect a wire to ENA/ENB, you may be shorting your Arduino pin to 5V, which can damage the pin. Remove the jumpers before connecting ENA to Arduino.

If you are NOT using PWM (just want the motor to spin at full speed), leave the jumpers installed and do NOT connect ENA/ENB to Arduino. This is the simplest configuration: the motor runs at full speed whenever IN1/IN2 are set high/low.

2. Check motor supply voltage

The L298N requires a minimum of about 6–7V on the 12V terminal to drive motors. The module drops approximately 2V internally (1V per transistor, two transistors in series per channel). At exactly 5V supply, this leaves only 3V for the motor — barely enough to start rotating under any load. Use a 9V or 12V power supply for the motor terminal.

// Verify with a multimeter:
// Measure voltage between L298N GND and 12V terminal: should be 9-12V
// Measure voltage between OUT1 and OUT2 with motor disconnected
// and IN1=HIGH, IN2=LOW: should be approximately (supply - 2V)

3. Check common ground

This catches more than half of “motor not running” problems. The GND of the L298N, the GND of the Arduino, and the GND of the external power supply MUST all be connected together. If you are powering the L298N from a 12V adapter and the Arduino from USB, they have separate grounds. Connect a wire from the 12V adapter’s GND terminal to the Arduino’s GND pin. Without this, the IN1/IN2 signals from Arduino have no reference voltage and the L298N sees them as floating inputs.

4. Check the code logic

IN1 IN2 Motor A Behaviour
HIGH LOW Runs forward
LOW HIGH Runs reverse
HIGH HIGH Brakes (stops hard)
LOW LOW Coasts (no braking)

A common code mistake: setting both IN1 and IN2 HIGH (braking state) thinking this is “full power forward”.

5. Test with direct voltage

Disconnect the motor from OUT1/OUT2 and temporarily apply 9V directly to the motor terminals using wires from a battery. If the motor spins, the motor is fine — the problem is in the L298N wiring or code. If it does not spin, the motor is faulty.

Motor Only Runs in One Direction

If the motor runs in one direction but not the other, the most likely cause is a damaged transistor in one half of the H-bridge. This happens when the motor’s back-EMF causes voltage spikes that exceed the L298N’s ratings — usually because the motor supply voltage was too high, or the motor was started/stopped abruptly at high current.

Confirm by swapping OUT1 and OUT2 wires. If the motor now runs in the previously broken direction (and the other direction is broken), one transistor pair is dead — the L298N module needs replacement. If the issue follows the code pins rather than the hardware terminals, the problem is in the Arduino sketch.

A secondary cause: one of the IN pins is floating (not connected). An unconnected Arduino digital pin reads random values. Always explicitly set both IN pins in your code before calling analogWrite on ENA:

// Always set direction BEFORE enabling PWM
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
analogWrite(ENA, 150); // then apply speed

L298N Overheating

The L298N getting hot — sometimes too hot to touch within minutes — is the second most common complaint. There are three root causes:

Root cause 1: Motor current exceeds 2A

The L298N IC is rated 2A per channel continuous, 3A peak. DC gear motors in stall can draw 3–5× their rated current. A motor rated 1A drawing 3A stall current will push the L298N over its thermal limit. The IC’s internal protection will shut it down repeatedly, manifesting as the motor stopping randomly and the chip becoming burning hot.

Check: measure stall current of your motor with a multimeter in series. If it exceeds 2A, switch to a higher-rated driver (IBT-2 BTS7960, L298P, or Cytron MD30C).

Root cause 2: No heatsink

Some L298N modules ship with a small aluminium heatsink on the IC. If yours does not have one, add it — any small clip-on heatsink works. Apply a thin layer of thermal paste between the IC and heatsink. This reduces chip temperature by 20–40°C under equivalent load and significantly extends the module’s life.

Root cause 3: 2V voltage drop waste heat

The L298N’s bipolar transistor design inherently drops 2V across the output transistors. At 2A current: Power = V × I = 2V × 2A = 4W per channel. Four watts of heat in a small chip is significant. This is a fundamental limitation of the L298N technology — there is no fix other than accepting a heatsink or switching to a MOSFET-based driver (A4950, DRV8833, IBT-2) that drops less than 0.5V and generates far less heat.

At supply voltages above 12V or with high-current motors, the L298N will almost always overheat. For these applications, use the IBT-2 (BTS7960) module instead.

PWM Speed Control Not Working

PWM control requires removing the ENA/ENB jumpers and connecting those pins to Arduino PWM-capable pins. Arduino Uno PWM pins are: 3, 5, 6, 9, 10, 11. Pins 2, 4, 7, 8, 12, 13 are NOT PWM capable — analogWrite() on these pins will only output full HIGH or full LOW.

Common mistakes:

  • ENA/ENB jumper still installed with a wire also connected → conflict
  • ENA connected to a non-PWM pin (e.g., pin 4)
  • Motor supply too low for the requested PWM duty cycle to spin the motor (motors have a minimum start voltage, typically 30–50% duty cycle at rated voltage)
// Correct L298N + Arduino DC motor control sketch
#define ENA 10   // MUST be PWM pin
#define IN1 8
#define IN2 9

void setup() {
  pinMode(ENA, OUTPUT);
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  // Remove ENA jumper from L298N module!
}

void setMotor(int speed) { // speed: -255 to +255
  if (speed > 0) {
    digitalWrite(IN1, HIGH);
    digitalWrite(IN2, LOW);
    analogWrite(ENA, speed);
  } else if (speed < 0) {
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, HIGH);
    analogWrite(ENA, -speed);
  } else {
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, LOW);
    analogWrite(ENA, 0);
  }
}

void loop() {
  setMotor(200);  // forward at ~78% speed
  delay(2000);
  setMotor(-150); // reverse at ~59% speed
  delay(2000);
  setMotor(0);    // stop
  delay(1000);
}

Voltage Drop and Motor Running Slow

The L298N drops approximately 2V between the motor supply and the motor terminals. A motor rated for 12V connected to a 12V supply via L298N actually sees only 10V. This reduces both speed and torque by approximately 17%.

Solutions:

  • Increase supply voltage by 2V above the motor’s rated voltage (e.g., 14V for a 12V motor)
  • Accept reduced performance (fine for most hobby applications)
  • Switch to a MOSFET-based driver with sub-0.5V drop (A4950, DRV8833, IBT-2)

Also check that your power supply can deliver sufficient current. A USB power bank at 2A output powering a 12V motor via a boost converter — a common but ill-advised setup — will severely current-limit the motor. Use a proper 12V DC power adapter rated for at least the motor’s stall current.

Stepper Motor Issues with L298N

The L298N can drive a 4-wire bipolar stepper motor (NEMA17 or similar) using both H-bridge channels. Common stepper problems:

Stepper vibrates but does not rotate

Coil wires connected in wrong order. Identify the two coil pairs with a multimeter: coil pair 1 and coil pair 2. Each pair has ~1–5 Ω continuity between its two wires. Connect coil pair 1 to OUT1/OUT2, coil pair 2 to OUT3/OUT4. Wrong pair assignments cause the stator field to conflict rather than rotate.

Stepper skips steps or loses position

Current limit too low. The L298N at 12V can supply up to 2A per coil — more than enough for most steppers. But if you are using a low voltage motor supply or the L298N is thermally throttling, coil current drops below the motor’s rated value and torque is insufficient. Add a heatsink and ensure supply voltage is adequate.

Stepper runs hot even when stopped

Stepper motors hold current in their coils when stationary. Disable the enable pins (set ENA and ENB LOW) when the motor does not need holding torque. This reduces heat dramatically in both the motor and the L298N.

The Onboard 5V Regulator Problem

The L298N module’s onboard 78M05 regulator can supply the Arduino’s 5V rail — a convenient feature. However, it is only rated for 500 mA, and it dissipates power proportional to the voltage drop: at 12V input, each milliamp costs (12−5) = 7 mW. At 500 mA, that is 3.5W of heat on a tiny regulator, which will thermally shut down rapidly.

Do NOT power your Arduino and multiple sensors from the L298N’s 5V output under heavy motor load. Instead:

  • Power Arduino from USB during development
  • Use a separate small 5V buck converter module for the Arduino in final builds
  • If using the onboard 5V for Arduino only (no sensors), keep motor supply below 18V to reduce regulator heat

Remove the onboard 5V jumper if you are powering the Arduino from USB or a separate supply — running two 5V sources simultaneously can damage both the regulator and the computer’s USB port.

Correct Wiring Reference

L298N Pin Arduino Pin Notes
IN1 8 Any digital pin
IN2 9 Any digital pin
ENA 10 Must be PWM pin; remove jumper!
IN3 4 Any digital pin
IN4 5 Any digital pin
ENB 6 Must be PWM pin; remove jumper!
GND GND Common ground — critical!
12V External 9–12V supply + Do NOT use Arduino 5V
5V out Arduino 5V (optional) Only if NOT using USB power

When to Replace L298N

The L298N is a good learning module but has real limitations. Consider upgrading when:

  • Motor current >2A: Use IBT-2 (BTS7960, 43A peak), Cytron MD30C, or VNH5019
  • Efficiency matters (battery-powered robots): L298N wastes 2V × current as heat. Use DRV8833 (0.5Ω Rdson) or TMC driver
  • Microstepping for steppers: L298N supports full and half step only. Use A4988 or TMC2209 for 1/16 or 1/256 microstepping
  • Higher voltage motors: Above 35V, use VNH5019 (41V rated) or BTS7960
  • Smaller PCB footprint: DRV8833 (motor current 1.5A) in TSSOP package is tiny; TB6612FNG is popular for Arduino robots
NEMA17 Stepper Motor

NEMA17 5.6 kg-cm Stepper Motor

If L298N overheating is causing stepper issues, upgrade to an A4988 driver for proper microstepping and current control. Pair this NEMA17 with A4988 for best results.

View on Zbotic

A4988 Stepper Motor Driver

A4988 Stepper Motor Driver Controller Board (Red)

Upgrade from L298N for stepper motor control. Adjustable current limiting prevents overheating, and microstepping gives smoother quieter motion. Best paired with NEMA17.

View on Zbotic

Frequently Asked Questions

Why does my L298N module get hot even with no motor connected?

The onboard 78M05 voltage regulator is generating heat. At 12V input, the regulator drops 7V while supplying current to Arduino and peripherals. Even at 100 mA load, that is 0.7W of heat from the regulator alone. This is normal behaviour but can be reduced by powering Arduino from USB instead and disabling the onboard 5V supply jumper.

Can I use L298N with 3.3V Arduino (ESP32, ESP8266)?

The L298N’s logic input threshold is 2.3V minimum for HIGH, so 3.3V signals from ESP32 GPIO pins are just barely sufficient. In practice, this usually works, but the lower noise margin makes it slightly less reliable than 5V. Use a level shifter for guaranteed reliable operation with ESP32 GPIO outputs.

My L298N module’s 5V output reads 4.2V instead of 5V — is it broken?

The 78M05 regulator output drops under load. If it is reading 4.2V, you are drawing more current than the regulator can supply efficiently. Reduce the load or use an external power supply. 4.2V is generally sufficient for Arduino but marginal for SD cards and some sensors.

I have two L298N modules. Can I daisy-chain them for more current?

Not directly in parallel — paralleling H-bridge outputs causes one driver to fight the other. Instead, drive each motor from its own L298N channel, or upgrade to a single higher-current driver. Two L298N modules running independent motors is perfectly fine.

Why does my L298N cause Arduino to reset when the motor starts?

Motor startup current causes a voltage dip on the shared power supply, pulling Arduino’s voltage below the reset threshold. Fix: add a 1000 µF capacitor across the motor supply lines (not the Arduino 5V rail). Ensure the power supply can deliver at least 2× the motor’s rated current without significant voltage sag.

Where can I buy L298N alternatives in India?

Zbotic.in stocks A4988 stepper drivers, which are an excellent upgrade for stepper motor control. For DC motors requiring more current than L298N can handle, check the full motors and drivers category for the latest available options.

Upgrade your motor control setup
Browse stepper drivers, DC motor drivers, and actuators at Zbotic Motors & Actuators. GST invoice on all orders, fast pan-India delivery.
Tags: L298N arduino, L298N motor not running, L298N overheating, L298N troubleshooting, motor driver fix
Share Post
  • Facebook
  • Linkedin
  • Whatsapp
Wireless Charging Module Qi: B...
blog wireless charging module qi build a charging pad project 597126
blog relay working principle coil contacts and back emf diode 597133
Relay Working Principle: Coil,...

Related posts

Svg%3E
Read more

Gear Motor Guide: N20, JGB37, and Planetary Motors Compared

April 1, 2026 0
When your project needs more torque than a bare DC motor can provide, a gear motor is the answer. By... Continue reading
Svg%3E
Read more

Miniature Pump Hydroponics: Automated Nutrient Dosing System

April 1, 2026 0
Hydroponics grows plants in nutrient-rich water instead of soil, and automating the nutrient dosing process with peristaltic pumps and Arduino... Continue reading
Svg%3E
Read more

Drone Motor Testing: Thrust Stand Build and KV Measurement

April 1, 2026 0
If you are building a drone, selecting the right motor-propeller combination is critical for flight performance. A drone motor thrust... Continue reading
Svg%3E
Read more

Pump Selection Guide: Peristaltic, Submersible, and Diaphragm

April 1, 2026 0
When your Arduino project needs to move liquid — whether for automated plant watering, hydroponics, aquarium management, or a coffee... Continue reading
Svg%3E
Read more

Solenoid Guide: Door Locks, Valves, and Automation Projects

April 1, 2026 0
A solenoid is an electromechanical device that converts electrical energy into linear motion. When you energise the coil, a plunger... Continue reading

Add comment Cancel reply

Your email address will not be published. Required fields are marked

Facebook Twitter Instagram Pinterest Linkedin Youtube

Get the latest deals and more.

Download on Google Play Download on the App Store

Call us: 020 69134444 / 1800 209 0998

Monday - Saturday 09:30 AM - 06:00 PM
For Technical Supports Email: [email protected]
For Sales / Enquiries Email: [email protected]

  • My Account

    • Cart

    • Wishlist

    • Checkout

    • My Orders

    • Track Order

    • My Account

  • Information

    • FAQs

    • Blogs

    • Career

    • About Us

    • Contact Us

    • Payment Options

  • Policies

    • Privacy Policy

    • Terms & Conditions

    • GST Input Tax Credit

    • Shipping Return Policy

    • E-Waste Collection Points

    • Our Sitemap

© Zbotic.in is registered trademark of Moxie Supply Pvt Ltd – All Rights Reserved
Login
Use Phone Number
Use Email Address
Not a member yet? Register Now
Reset Password
Use Phone Number
Use Email Address
Register
Already a member? Login Now