L298N motor driver: motors do not spin or run one way only

Check the enable pins, the common ground and the supply voltage before suspecting the module. The L298N needs ENA and ENB high to drive a channel, and its output sits about 2 V below the supply.

What the message means

The L298N has two inputs per motor for direction and one enable pin per motor for on/off or speed. Without a signal on the enable pin the channel stays off.

Fix it in this order

  1. Make sure the ENA and ENB jumpers are on, or that ENA and ENB are driven by PWM pins.
  2. Set the two direction inputs to opposite levels. Both high or both low stops the motor.
  3. Join the driver ground to the microcontroller ground.
  4. Measure the supply at the driver while the motor runs. The L298N drops roughly 2 V, so a 6 V motor on a 6 V supply runs slow.
  5. Remove the onboard 5 V regulator jumper if the motor supply is above about 12 V, and power the logic separately.
  6. Check the supply can deliver the motor stall current. A weak supply sags and the motor stops.

Why it happens

The L298N does nothing without its enable pins high. On the common module the ENA and ENB pins have jumpers that keep them enabled; if you removed a jumper to use PWM speed control, you must now drive that pin. Other causes are no motor supply on the 12 V terminal, a missing common ground, or both direction inputs at the same level.

Check the jumpers, give the module the motor supply, join the grounds of the supply, module and board, and test with IN1 high and IN2 low. Note that the L298N drops roughly 2 V, so a small battery may not turn the motor.

If you see this, do this

You seeDo this
One motor works, the other does notCheck that channel’s enable and direction pins and the wiring.
Motors hum but do not turnToo little voltage or current at the driver.
The driver gets very hotIt is wasting power as heat. Consider a MOSFET driver for higher current.

L298N vs TB6612FNG, robot battery guide, wheel speed calculator.

Last reviewed: November 2026. These are the usual causes and the order that finds them fastest. Test on your own board; clones and cables differ.

Why this happens

The L298N contains two H-bridges. Each bridge has four switches arranged so that current can flow through the motor in either direction. The enable pin switches the whole bridge on or off, and the two input pins choose which diagonal pair of switches closes. If enable is low the bridge is off whatever the inputs say. If both inputs are equal, no diagonal pair conducts in the forward or reverse sense and the motor does not turn.

The outputs are bipolar transistors, not MOSFETs, so they lose voltage: about 2 V or a little more across the bridge in total. A 6 V supply leaves roughly 4 V at the motor, and a motor that needs most of its rated voltage to start may only hum.

How to confirm the cause

  • Measure the voltage at the supply terminals, then across the motor terminals, while the motor tries to run. The difference is the driver loss and the supply sag together.
  • Measure the enable pin to ground. About 5 V means enable is high; 0 V means the channel is disabled.
  • Set IN1 high and IN2 low, then swap them. If the motor turns one way only, one input line is broken or miswired.
  • Disconnect one motor and test the other channel. If only one channel works, compare the enable and input wiring of the two channels.
  • If the motor hums but does not turn, measure the supply while the motor is attached. A big drop shows the supply cannot deliver the current.

Worked example

This test sketch holds channel A on at full enable, forward, so you can measure across the motor. Pins 7, 8 and 9 are examples; change them to match your wiring.

const int ENA = 9, IN1 = 7, IN2 = 8;
void setup() {
  pinMode(ENA, OUTPUT); pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT);
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);
  digitalWrite(ENA, HIGH);    // enable fully on, no PWM
}
void loop() {}

If the motor now turns at full supply, the earlier fault was a missing enable or a PWM value that was too low. Swap IN1 and IN2 to test reverse, then bring PWM back on ENA.

Common mistakes

  • Leaving the ENA jumper off and not driving the pin.
  • Powering the motor from the 5 V pin of the controller board.
  • Choosing a PWM value so low that the motor never starts, and reading that as a dead driver.
  • Forgetting the common ground between the supply, the driver and the controller.

If this did not fix it

  • Weak or low-voltage battery: measure it under load.
  • A motor with high stall current for this driver: the L298N has a modest current rating, so check yours.
  • Damaged channel after a short: test with a different motor, then replace the module.