The L293D Motor Driver IC: What It Actually Does

The L293D is a dual H-bridge motor driver IC capable of driving two bidirectional DC motors or one 4-wire bipolar stepper motor. It handles up to 600mA continuous current (1.2A peak) per channel across a 4.5V to 36V operating range. If you are building a basic robotics chassis or an automated pan-tilt rig, this chip is the default interface between low-voltage microcontroller GPIO pins (which can only source ~20mA) and high-current inductive loads.

Internally, the L293D uses Bipolar Junction Transistor (BJT) Darlington pairs to switch the motor phases. While this architecture is rugged and forgiving of minor wiring mistakes, it introduces a significant voltage drop—typically 1.4V to 2.0V across the H-bridge. This means if you feed the chip 5V, your motor only sees about 3.5V. Understanding this voltage drop and the chip's thermal limits is the difference between a reliable build and a frustrating afternoon of debugging stalled motors.

Motor Type Matchup: Which Load Fits the L293D?

Not all motors demand an H-bridge. Treating a stepper and a servo as interchangeable is a common beginner mistake that leads to fried components. Here is how the L293D maps to common hobbyist motor types.

Motor Type Torque Curve Control Needs Typical Cost L293D Compatibility
Brushed DC High starting torque, drops linearly as speed increases. H-bridge for direction; PWM on Enable pin for speed. $2 - $5 Perfect Fit. Ideal for TT gearmotors and small 6V-12V DC motors.
Bipolar Stepper High holding torque at zero speed, drops sharply at high RPM. Dual H-bridge with sequenced logic (requires 4 GPIO pins or a library). $10 - $15 Conditional. Works for low-speed NEMA 14/17, but lacks microstepping and runs hot.
RC Servo High, precise torque across the operational arc. 50Hz PWM signal directly from microcontroller. Does NOT use an H-bridge. $5 - $12 Incompatible. Servos have internal controller boards; connect directly to GPIO and a 5V/6V BEC.

Wiring and Terminal Identification

The L293D comes in a 16-pin DIP package. The 'D' in the part number signifies built-in flyback snubber diodes, which protect your circuit from inductive voltage spikes when the motor coils de-energize. If you are using the base L293 (without the D), you must wire external 1N4007 diodes across every motor terminal.

Pin(s) Name Function & Wiring Notes
1, 9 EN1, EN2 Enable / PWM: Tie to 5V for full-on, or connect to a microcontroller PWM pin for speed control.
2, 7, 10, 15 1A, 2A, 3A, 4A Logic Inputs: Connect to Arduino/ESP32 digital pins. 5V logic HIGH, 0V logic LOW.
3, 6, 11, 14 1Y, 2Y, 3Y, 4Y Motor Outputs: Connect directly to the motor terminals. Do not place capacitors across these.
8 VS Motor Supply: The high-voltage source for the motors (4.5V to 36V). Add a 470µF bulk capacitor here.
16 VSS Logic Supply: 5V from your microcontroller to power the internal logic gates.
4, 5, 12, 13 GND Ground & Heatsink: All four pins are internally tied. Connect to system ground. Solder to a large copper pour if using a custom PCB.
Callout Tip: Logic vs. Motor Grounds
Always tie the L293D ground pins to the same ground as your microcontroller. If you isolate the grounds, the logic inputs will lack a reference voltage, resulting in erratic motor twitching or complete failure to switch.

Sizing Rule of Thumb and Worked Load Example

The datasheet claims a 600mA continuous current limit per channel. However, this assumes an infinite PCB copper heatsink and a 25°C ambient environment. In a real-world breadboard or perfboard setup with free air convection, the thermal resistance ($\theta_{JA}$) of the DIP package is roughly 80°C/W.

The Sizing Rule of Thumb: Never run the L293D above 400mA continuous in free air without active cooling.

Worked Load Example: 6V TT Gearmotor

Let's size a driver for a standard yellow TT gearmotor used in 2WD robot chassis.

  • Motor Specs: 6V nominal, 200mA no-load current, 800mA stall current.
  • Supply: 4x AA battery pack (6V nominal).
  • Voltage Drop: The L293D BJT H-bridge drops ~1.8V under load.

The Math:
If you supply 6V to the VS pin, the voltage reaching the motor is $6V - 1.8V = 4.2V$. Because DC motor speed is proportional to voltage, your robot will run roughly 30% slower than expected. Furthermore, if the robot hits a wall and the motor stalls, it will attempt to draw 800mA. This exceeds the 600mA continuous rating, and the $800mA \times 1.8V = 1.44W$ of heat dissipated will spike the junction temperature by over 115°C, triggering thermal shutdown in milliseconds.

The Fix: Bump your supply voltage to a 2S LiPo (7.4V nominal). Accounting for the 1.8V drop, the motor sees 5.6V—right in its sweet spot. Ensure your mechanical design prevents prolonged stalling to keep the current under the 400mA safe continuous threshold. Note: Always use a fire-safe LiPo charging bag and a dedicated balance charger when working with 2S LiPo packs.

Failure Signatures: Hum, Overheat, and Stall

When an L293D circuit fails, it rarely just 'breaks.' It exhibits specific physical signatures that point directly to the root cause.

  • The 'Hum' or Whine: If the motor emits an audible high-pitched whine but doesn't spin, your PWM frequency is likely too low (under 1kHz), or the motor is mechanically jammed while the driver is still passing current. If it's a stepper motor, a hum without rotation usually means the step pulse rate is too high for the rotor inertia to catch, causing it to stall in place.
  • Thermal Overheat (The 3-Second Cycle): The L293D features internal thermal shutdown that triggers at 150°C. If your motor runs for exactly 2 to 4 seconds, stops, coasts for a few seconds, and then starts again in a loop, the IC is overheating and resetting. You are exceeding the continuous current limit. You must either reduce the mechanical load, add a heatsink, or upgrade the driver.
  • Brownout Stall: The motor starts, the microcontroller resets, and the motor stops. This happens because the motor's initial inrush (stall) current causes the shared power rail to sag below the microcontroller's minimum operating voltage (usually ~3.3V or 4.5V). Fix this by adding a 470µF to 1000µF electrolytic decoupling capacitor directly across the VS and GND pins on the L293D to supply the instantaneous inrush current.

Decision Tree: Stick with the L293D or Upgrade?

The L293D was designed in the 1980s. While it remains a staple in educational kits due to its ruggedness and low cost, modern MOSFET-based drivers offer vastly superior efficiency. Use the decision matrix below to finalize your component selection.

Condition / Load Profile Recommended Action Concrete Part Pick
Continuous load < 400mA, supply < 12V, budget is strict (< $2), and voltage drop is acceptable. Keep the L293D. It is perfectly adequate for small educational projects and simple toy motors. L293D (TI or STMicroelectronics DIP-16)
Continuous load 400mA - 1.5A, battery-operated robot where efficiency and runtime matter. Upgrade to MOSFET. You need a driver with a low voltage drop (< 0.5V) to preserve battery life and reduce heat. TB6612FNG (Dual channel, 1.2A continuous, ~$4 on breakout boards via Pololu)
Driving a single high-torque DC motor (1.5A - 3A continuous), like a window lift motor or large conveyor. Upgrade to Single H-Bridge. Dual drivers will overheat. Use a dedicated single-channel high-current driver. DRV8871 (Single channel, 3.6A continuous, ~$3)
Driving NEMA 17 or NEMA 23 bipolar stepper motors for CNC, 3D printers, or precision linear actuators. Upgrade to Chopper Driver. The L293D lacks current regulation and microstepping. Use a dedicated stepper controller. A4988 or TMC2209 (For silent operation, ~$2-$5 per axis)
Final Recommendation for 2026 Builds:
If you are designing a new PCB or building a robot from scratch today, default to the TB6612FNG for dual DC motors or the DRV8871 for single high-power DC motors. The L293D should strictly be reserved for repairing legacy hardware, fulfilling specific school curriculum requirements, or prototyping on a breadboard when it is the only chip available in your parts bin. For deeper architectural details, always consult the official Texas Instruments L293D Datasheet before finalizing your schematic.