If you have been tearing your hair out searching for an lm293d motor driver, you are almost certainly falling victim to one of the most common beginner typos in electronics. The LM293 is actually a dual differential voltage comparator used for sensing and logic. The chip you actually want to spin a motor is the L293D, a quadruple high-current half-H driver. Mixing up the 'L' and 'LM' prefix will lead you to a component that will instantly fail (or fail to do anything at all) when you try to drive an inductive load.

This guide cuts through the search-engine confusion. We will cover the real L293D specifications, map out which motor types actually fit its load profile, walk through the exact wiring and terminal identification, and provide a concrete sizing rule of thumb so you do not fry your IC on the first test run.

The Real L293D: Specifications and the Voltage Drop Catch

The Texas Instruments L293D is a 16-pin DIP integrated circuit designed to drive bidirectional DC motors, stepper motors (with limitations), and relay coils. It contains two built-in H-bridges, allowing you to control two DC motors independently or one 4-wire stepper motor.

Warning: The Darlington Voltage Drop
The L293D uses a Darlington pair output stage. This means the internal transistors drop a significant amount of voltage. If you supply 12V to the motor pins (VCC2), your motor will only see about 10V to 10.6V under load. You must account for this ~1.4V to 2V drop when calculating your final motor speed and torque.
L293D Core Specifications (Per Channel)
ParameterValuePractical Implication
Continuous Output Current600 mAMax safe continuous draw without active cooling.
Peak Output Current1.2 AOnly sustainable for brief transients (startup/stall).
Logic Supply (VCC1)4.5V to 7VConnect to your Arduino/microcontroller 5V pin.
Motor Supply (VCC2)4.5V to 36VConnect to your external motor battery/power supply.
Output Saturation Voltage~1.4V (at 600mA)Subtract this from VCC2 to find actual motor voltage.
Built-in Flyback DiodesYes ('D' suffix)No external snubber diodes required for motor protection.

Motor Type Comparison: Which Load Profile Fits?

Not all motors are created equal, and treating a stepper and a servo as interchangeable is a fast track to a blown driver. The L293D is fundamentally a DC brushed motor driver that can be pressed into service for basic steppers. Here is how the common hobbyist motor types stack up against the L293D's capabilities.

Motor Load Profiles and Driver Compatibility
Motor TypeTorque CurveControl NeedsTypical CostL293D Compatibility
DC Brushed Gearmotor Maximum torque at stall (0 RPM); drops linearly as speed increases. Simple H-bridge for direction; PWM on Enable pin for speed. $2 - $8 Excellent. The primary use case for this IC.
Bipolar Stepper High holding torque at standstill; torque drops sharply at higher speeds. Two H-bridges driven in a precise 4-step or 8-step sequencing pattern. $10 - $25 Poor to Fair. Lacks microstepping and current chopping. Will overheat the motor and driver compared to an A4988.
Hobby Servo High torque across low-to-medium speeds; managed by internal gearbox. 50Hz PWM signal (pulse width 1ms-2ms). Requires a microcontroller GPIO, NOT an H-bridge. $4 - $15 None. Servos have built-in drivers. Connect directly to MCU PWM pins and a separate 5V/6V power rail.

The Verdict: If your load profile requires continuous rotation, variable speed, and simple direction reversal (like a differential drive robot chassis or a conveyor belt), a DC brushed gearmotor is the correct fit, and the L293D is the correct driver. If you need precise angular positioning without a feedback loop, use a stepper with a dedicated chopper driver. If you need high-torque positional control (like a robotic arm joint), use a servo and bypass the L293D entirely.

L293D Wiring, Terminal ID, and Sizing Rules

Correct wiring is only half the battle; correctly sizing the driver for your specific motor's current draw is what prevents the magic smoke from escaping. For a deeper look at H-bridge theory, All About Circuits provides an excellent primer on motor driver topologies.

Wiring and Terminal Identification

The L293D is a 16-pin DIP. Here is the exact terminal map for driving two DC brushed motors:

  • Pin 1 (1,2EN): Enable pins for Motor 1. Pull HIGH to run, PWM for speed control.
  • Pin 2 (1A) & Pin 7 (2A): Logic inputs for Motor 1. (High/Low = Forward, Low/High = Reverse).
  • Pin 3 (1Y) & Pin 6 (2Y): Motor 1 output terminals.
  • Pin 8 (VCC2): Motor power supply input (4.5V - 36V).
  • Pin 9 (3,4EN): Enable pins for Motor 2.
  • Pin 10 (3A) & Pin 15 (4A): Logic inputs for Motor 2.
  • Pin 11 (3Y) & Pin 14 (4Y): Motor 2 output terminals.
  • Pin 16 (VCC1): Logic power supply input (5V from your Arduino/MCU).
  • Pins 4, 5, 12, 13 (GND): Ground and Heat Sink. Must all be tied to the common ground.

The Sizing Rule of Thumb and Worked Load Example

Rule of Thumb: Size your motor driver's continuous current rating to be at least 1.5x to 2x the motor's expected continuous operating current, and ensure the driver's peak rating exceeds the motor's absolute stall current.

Worked Example: Let us size a driver for a standard yellow 12V TT gearmotor used in hobby robotics.
1. Check the Datasheet: The TT motor draws about 150 mA at no-load, 300 mA under typical operating load, and has a stall current of 1.2 A.
2. Apply the Rule: We need a driver that can handle 300 mA x 1.5 = 450 mA continuously, and can survive a 1.2 A peak.
3. Evaluate the L293D: The L293D handles 600 mA continuous and 1.2 A peak. It technically passes the math for normal operation. However, if the robot gets stuck on a rug (stalling the motor), the current will spike to 1.2 A. The L293D will hit its peak limit, trigger its internal thermal shutdown, and cut power to protect itself.
4. The Fix: If your mechanical design guarantees no stalls, the L293D is fine. If stalls are likely, you must step up to a driver like the TB6612FNG (1.2A continuous) or a discrete MOSFET H-bridge to handle the stall current without thermal tripping.

Failure Signatures: Hum, Overheat, and Stall

When things go wrong on the bench, the L293D will tell you through physical symptoms:

  • Audible Hum: If the motor hums but does not spin, your PWM frequency on the Enable pin is likely too low (under 50Hz), or the voltage reaching the motor after the 1.4V Darlington drop is below the motor's startup threshold. Increase VCC2 or raise the PWM frequency to 1kHz+.
  • Overheat (Too hot to touch): The L293D does not have an exposed thermal pad on the bottom. It dissipates heat through the four ground pins (4, 5, 12, 13). If you are using a breadboard, the thin metal clips cannot dissipate the heat. At 400mA+, the chip will overheat. You must solder it to a PCB with a copper ground pour under the pins to act as a heatsink.
  • Stall and Shutdown: If the motor abruptly stops after running for a few seconds under heavy load, the internal thermal protection has tripped. The chip will remain disabled until it cools down (usually 10-20 seconds). This means your mechanical load is too high for the 600mA continuous rating.

Frequently Asked Questions (FAQ)

Can I use an lm293d motor driver for a stepper motor?

Technically, yes, you can wire a 4-wire bipolar stepper motor to the two H-bridges inside the L293D. However, it is highly discouraged for modern designs. The L293D simply applies full voltage to the coils, which causes the motor to run very hot and limits high-speed torque. Dedicated stepper drivers (like the A4988 or DRV8825) use 'current chopping' and microstepping to deliver smooth motion and keep the motor cool. Use the L293D for steppers only if you are maintaining a legacy 1990s circuit or doing a very basic, low-speed educational demo.

Why does my L293D get too hot to touch even at low speeds?

This is almost always a thermal dissipation issue caused by using a solderless breadboard. The L293D relies on its four ground pins (4, 5, 12, and 13) to act as a heatsink. Breadboard contacts have high thermal resistance. To fix this, you must solder the IC to a perfboard or custom PCB and ensure those four ground pins are soldered to a large, continuous copper ground plane. Alternatively, you can clip a small TO-220 style heatsink onto the top of the IC using thermal paste and a retaining clip.

What is the difference between L293D and L298N motor drivers?

The L298N is a heavier-duty, older dual H-bridge that can handle up to 2A continuous current per channel (compared to the L293D's 600mA). However, the L298N has a massive voltage drop (up to 3V) because it uses older bipolar transistor technology, and it requires bulky external heat sinks. The L293D is smaller, includes built-in flyback diodes (the L298N requires you to add them externally), and is much easier to wire for small 6V-12V hobby motors. If you need more than 1A continuous per channel, skip both and use a modern MOSFET-based driver like the DRV8871 or TB6612FNG.

Do I need to add external flyback diodes with the L293D?

No. This is the entire reason the 'D' exists in the L293D part number. The IC includes integrated clamp diodes across the output transistors to safely route the inductive kickback (back-EMF) generated when the motor stops or changes direction. If you are using the older L293 (without the 'D'), you must add four external 1N400x diodes per motor channel to prevent the voltage spikes from destroying the silicon. Always double-check your part number before powering up.

Why is my motor only spinning in one direction?

Check your logic inputs (1A and 2A). For a motor to reverse, the logic states must flip (e.g., from HIGH/LOW to LOW/HIGH). If one of your microcontroller GPIO pins is stuck HIGH, or if you have accidentally wired both logic inputs to the same PWM signal, the H-bridge will only ever see a forward or brake command. Use a multimeter to verify that the voltage on Pin 2 and Pin 7 are actually toggling inversely when you command a direction change in your code.