Motor Drivers Explained: L298N vs TB6612FNG

Every wheeled robot on this site has a motor driver between the Arduino and the motors. This guide explains what that board is actually doing, then settles the eternal beginner question: the ₹100 L298N everyone starts with, or the TB6612FNG everyone upgrades to?

Why you can’t drive motors from a pin

An Arduino pin supplies 5 V at a recommended 20 mA (40 mA absolute max). A yellow TT gear motor draws ~150–250 mA free-running and over 1 A when it stalls. Connect a motor to a pin and you get, at best, nothing; at worst, a dead pin. Motors are also inductive — they kick voltage spikes back when switched — and they need to run from a higher-voltage battery, not the 5 V logic rail. A motor driver solves all three problems: it switches heavy battery current using feather-light logic signals, and includes protection diodes for the spikes.

The H-bridge, in plain language

To reverse a DC motor you reverse the current through it. The circuit that does this is four electronic switches arranged like the letter H with the motor as the crossbar:

H-bridge concept: four switches around a motor. Closing diagonal pairs drives current left-to-right or right-to-left through the motor, reversing its direction. V+ GND S1 ON S2 off S3 off S4 ON MOTOR current path with S1+S4 closed → motor turns forward close S2+S3 instead → current reverses → motor turns backward
An H-bridge is just four switches. Diagonal pairs select the current direction — and therefore the motor direction. Your IN1/IN2 pins choose the pair; the EN pin PWMs it for speed.

Your IN1/IN2 pins pick which diagonal pair closes (direction), and the EN pin — fed with PWM from analogWrite — rapidly connects and disconnects the whole bridge to set speed. Both boards below are dual H-bridges: two motors, one board.

The L298N: old, cheap, everywhere

The L298 chip dates from the 1980s and uses bipolar transistors, which drop roughly 2 V (more under load) inside the chip. Feed it 8 V and your motors see about 6 V; the lost energy becomes heat in that big heatsink. In exchange it is nearly indestructible, handles up to 2 A per channel and 12 V+ packs happily, has screw terminals (no soldering), and includes a handy 5 V regulator that can power your Arduino. For a first build those conveniences genuinely matter, which is why our robot car guide uses it.

The TB6612FNG: the modern pick

The TB6612 uses MOSFETs, dropping only ~0.2–0.5 V. Almost all of your battery reaches the motors: longer runtime, more torque, no heatsink, and a board a quarter of the size and weight. Costs: you usually solder header pins yourself, it needs a separate STBY pin held HIGH, its motor supply tops out around 13.5 V (1.2 A continuous, 3 A peak per channel), and there is no 5 V regulator on board. Wiring is near-identical: PWMA/PWMB replace ENA/ENB, AIN1/AIN2/BIN1/BIN2 replace IN1–IN4, so our drive() function ports unchanged.

Head-to-head comparison

L298N vs TB6612FNG
 L298NTB6612FNG
TechnologyBipolar (1980s)MOSFET (modern)
Voltage lost in the driver~2 V or more~0.2–0.5 V
EfficiencyPoor — big heatsink required>90%, no heatsink
Current per channel2 A continuous1.2 A continuous, 3 A peak
Motor supplyUp to ~35 V (12 V typical hobby use)2.5–13.5 V
On-board 5 V regulatorYes — can power the ArduinoNo
ConnectorsScrew terminalsSolder header pins
Size / weightLarge, heavyTiny, ~3 g
Indicative price₹90–180₹150–250
Best forFirst builds, 12 V motors, no-solder classroomsBattery efficiency, racing, small robots
About prices

Prices shown are indicative online street prices in India as of mid-2026. They vary by seller and stock — treat them as a budgeting guide, not a quote.

Verdict: start on the L298N for the screw terminals and free 5 V rail; switch to the TB6612 the day you care about speed, runtime, or weight — your code will not change.

Common mistakes with either board

  • No common ground between driver, battery, and Arduino. Motors twitch or do nothing.
  • Forgetting the standby/enable: L298N EN jumpers removed but pins never driven; TB6612 STBY left floating. Symptom: perfect wiring, zero motion.
  • Expecting 9 V-block miracles. The little PP3 battery cannot source motor current regardless of driver.
  • Ignoring stall current. A wheel jammed against a wall pulls the motor’s stall current continuously; size your driver for it.
  • PWM on the wrong pins. On an Uno use 3, 5, 6, 9, 10, 11 — and remember the Servo library steals 9 and 10.

Next steps