I built this controller for the mini_cnc, but installed it onto Klunk to get it running.
It works very well. I did end up with one bad controller IC. I suggest socketing the ICs.
I used some quality stranded Cat-5 for all the multi-wire connections and a 12V 1.25Amp power brick. Originally I tried a 24V laptop supply, but it assumed it was being shorted by the motors.

Below, I've mirrored the files and text for this circuit.


Schematic (postscript)
PCB Layout (postscript)
PCB Overlay(postscript)
This controller is designed to control (3) three unipolar stepper motors at up to 35V@1.25A
continuous.

The controller is optimized for use with shareware CAD/CAM software (i.e. DANCAD3D). Connections are provided for limit and home switches. Motor, switch, and power connections are via terminal blocks. Control inputs from the PC parallel port are via pads on the PCB. Logic power for the stepper control ICs and control input pull-ups is provided from the motor supply
via a 7805 regulator. This should be safely usable at motor voltages up to 25V.

The PCB measure 3"x4" and has (4) four mounting pads. Postscript(tm) files are provided for the schematic, PCB layout, and PCB parts placement  diagram. These files are named schmatic.ps, pcb.ps, and overlay.ps, respectively.

For more info on homemade CNC equipment, see the series of articles by Dan Mauch starting in the October, 1994 issue of "Nuts & Volts".

Refer to the schematic and parts placement for connections to the PC parallel port. While designed to be controlled from a PC, the controller can easily be controlled from a microcontroller or even logic circuitry. All control inputs are TTL compatible. Refer to placement diagram for power connections.

When looking at the numbers on the parts overlay, the control connections are as follows:

10 - limit and pause switch: this connection, specifically for PC connections, is used to monitor normally closed (N.C.) limit switches. When one of these switches, connected in series, opens, it generates an interrupt in the PC that can be used to stop the motors. IF YOU CHOOSE NOT TO USE LIMIT SWITCHES THIS INPUT MAY HAVE TO BE SHORTED SO IT DOESN'T SEE AN "OPEN SWITCH".

2, 3, 4 - x-, y-, and z-axis step inputs, respectively.

6, 7, 8 - x-, y-, and z-axis direction inputs, respectively. Direction polarity depends on the motor connections. (to switch direction polarity, simply reverse the motor connections
end-for-end)

13, 12, 11 - these PC connections are used to bring the controlled machinery (i.e. X-Y table) to a "home" position. Normally open (N.O.) switches are used here.


Parts List for 3-Axis Stepper Controller

(1) PC Board: CW Technology AX3UP-PCB ($18) or make.
(3) U1-3 UCN5804B Stepper Controller IC: CW Technology ($7) or Pure Unobtanium
(12) D1-12 200V/1A Fast Recovery Rectifiers: Digi-Key 1N4935CT-ND
(1) VR1 7805 5V Regulator: various
(4) R1-4 4.7K ohm, 1/4W resistors: various
(2) C2,3 0.01 uF, 63V Monolithic capacitor: Digi-Key P4914-ND
(1) C1 10uF, 25V Miniature Electrolytic: Digi-Key P813
(3) Slide-on sink for U2: Digi-Key HS125-ND
(3) RP1-3 Resistor Network: Digi-Key 770-81-R-4.7K
(14) 2-pos. Terminal blocks (optional): Digi-Key ED-1601-ND
(1) Parallel port cable: various