Note: I recently redesigned and improved the stepper driver, as this has no microstepping, current limiting, and is prone to change direction erratically. The improved version is here: https://www.instructables.com/id/45-better-stepper-driver/
I have wanted to make a 3D printer or a CNC for quite a while, but as I don't have a lot of money, nor can I frequently order components online, I always ran into one obstacle. Almost all projects required stepper drivers with step-direction control. Those sorts of parts aren't avaliabe at stores, and the cheapest and most popular are around $15 a piece. I don't want to spend nearly that much on a single component that could fry in a second, so I decided to make something a little cheaper and more expendable. I ended up deciding on making my driver with an attiny and separate H-bridge chip. It uses an attiny85, and the ever-common L293 motor driver. together, they cost less than $5, and need almost no support circuitry.
Step 1: other parts
All parts except the attiny and L293 are optional, but highly recommended. In quantity, most cost as little as a few cents.
1x >47uf capacitor-the bigger the better
8x ~1k ohm resistor-doesn't have to be 1K, any value 330-2K2 will probably work
1x 1N4001 diode-or any diode that can take >=1 amp, again, the bigger the better
protoboard-you could free-form it, but it's best to use protoboard/perfboard.
header pins-if you want to breadboard with the driver or make it easy to replace. I didn't use them, but its generally a good idea to do so.
IC sockets-for the two chips, one 8 pin, one 16 pin. Again, I didn't use them, but highly recommended.
Finially, you will need an arduino. Any flavor, homemade or whatever, as long as it has serial and an atmega it will work.