Friday, November 23, 2012

Stepper Motor Driver

I recently found out that Texas Instruments gives out free samples of some of their ICs.  I love free things.
huh? HTSSOP?
Lately, I've been derping around with a bipolar stepper motor.  I found a schematic online for an L298N based stepper driver.
L298N Dual H-Bridge IC
I had a couple laying around, so I decided to make it.

...many hours later

I was pretty excited about this, and started making plans to etch a board capable of driving 3 steppers at once.  I was telling Joseph, a MITERS regular about it, and he told me to ditch the L298N and just use a nice dedicated stepper driver IC from Allegro or Texas Instruments.  It turns out that the L298N is based on BJTs instead of MOSFETs like most modern motor controllers.  In general, this means that it requires more power to switch, and dissipates more power as heat.

So I took the advice and requested some samples from TI, specifically, the DRV8818.  It's rated for 2A through yer stepper coils, but that requires active cooling on the IC.

Most of the available samples don't come in the DIP format (convenient for breadboarding).  Instead, the inventory is almost entirely surface mount.  I guess that's cool.  Now I finally have to learn eagle to make a breakout board.
ohgod this is not solidworks
I started by cadding the recommended setup for the IC as listed in the datasheet.  It's surrounded by a whole bunch of passives used to change its characteristics.  Eagle is not very intuitive at first, but I've been told it's much better than other options out there, and that it does have an efficient interface, once you get used to it.  Thanks to Bayley for answering infinite eagle questions.  Since I'd never etched a board before, I whittled my other design down to something dead-simple -- nothing more than a bare breakout board for the IC.
So, I headed over to MITERS and Tyler showed me how to format and print my board as a black and white image on transfer paper.  Here's the final B&W image, at 600dpi.  The black parts will be printed with toner, and the white parts will stay unprinted.
After printing it on transfer paper, I sanded some copper-clad PC board before cleaning it with rubbing alcohol.  Next, I cut out and lined up the transfer paper with the board, then ran it through some heated rollers.  
Here's a .gif of the heated roller toner transfer setup that MITERS uses.  It's modified to move much more slowly so that a small 4" long board like mine might take 30 seconds to move through.

Next, I held the board under running water for a while to saturate the transfer paper.  After that, I peeled off the paper and scrubbed the board with my fingers to remove any excess paper stuck between the traces.  I had to clean things up with a sharp knife, as the traces were very close together and the transfer was not perfect.  I did cut one of the toner traces by accident, but that was fixed with a fine-tipped sharpie.
Here's the board after ~30 minutes in an agitated ferric chloride solution.

After that, I rubbed a bit of acetone on it to remove the toner, exposing the shiny copper underneath.  I did a bit more fixing at this stage, removing leftover bits of copper with a sharp knife.  Next up, using the PCB drill with a tungsten carbide bit, I drilled the holes for the .1" pitch pins to make the thing fit in a breadboard.

Here's the process:

And some closeups:

I plugged one in and wired it up and things were sort of derp and then I changed some things and things were still kind of silly and then I changed more things and it smelled funny and let the smoke out.  
I did this to the other two also.

I think I learned something here, but I'm not sure what it is.  

More samples are on the way, and hopefully I'll get this thing running soon.