Motor Controller - Buy or build.

I've read there are a number of chips you can use to build your own circuit and I'm sure I'll build one myself eventually but to get started should I just buy one or try building one?

It depends upon what your goals are. Certainly building your own is a better educational experience. If you miswire something you could destroy a chip or two, but education isn't free :slight_smile:

The real do-it-yourself option is to build a motor driver out of discrete transistors or MOSFET's. The chips you list really just package these transistors into a single device for convenience, and these chips are often further packaged into entire "motor driver" boards for even more convenience.

L293 - Seems this would work for small low-powered DC motors
L298 - Seems much more popular but has staggered pins
ULN2003A - Seen this one used for stepper motors

That's a pretty good summary. What matters most for motors is current: the greater the current the greater the torque. Or, for the same torque, the greater the current the greater the speed.

The L293 is good for motors of a few hundred milliamps (~500mA or so max), while the L298 is good for about double that. Note: do not be mislead by the "maximum current" limits printed for each device (600mA for the L293 and 2A for the L298). These are "marketing" numbers that represent absolute best-case conditions with lots of heatsinking or cooling. These chips will enter thermal shutdown long before pumping out the current they claim as the maximum -- see our Motor Driver Myth application note for an example.

I guess I really have no idea what I'm doing. For example it seems a heatsink is very important but I don't have any idea how to hook one up.

Heatsinks have to be attached very firmly (mechanically) using some kind of high-conductivity thermal transfer material, like silicone grease or thermal tape. The smallest air pocket will reduce heat sinking performance. How to hook one up very much depends upon what you are hooking it up to!

Also can these run both DC and steppers or are they specialized.

The L293 and L298 can run two brush DC motors or one bipolar stepper. The ULN2003A can run unipolar stepper motors.

P.S. If buying I was looking at this guy...

L298 Motor Driver Dual H-Bridge Electronic Kit – Hobby Engineering

That is a "motor driver" that provides the maximum amount of convenience so you won't have to build anything yourself. If you are worried about burning stuff up please consider our own product, the Rugged Motor Driver which has extra protection circuitry to keep it alive and kicking even if you make some mistakes. It's also a shield so it plugs in directly to an Arduino.

--
The Gadget Shield: accelerometer, RGB LED, IR transmit/receive, light sensor, potentiometers, pushbuttons