Controller
Box
The current version of my controller box includes the PC/Hardware
Interface and the Stepper Driver boards. I have left room to
include the Limit/Home Switch board once I add the switches to the
machine.
 |
 |
| Controller Box - Front View |
Controller Box - Side View |
Stepper Drivers

Stepper Drivers - 3 axis
5804B 3_Axis Stepper Driver
w/ IRL540s
The stepper driver board currently used in this project was created based on the application notes from the
UN5804B stepper driver from Allegro
Microsystems. Each board is controlled by a step
and direction signal. The UN5804B chip has been hard wired to run in
half stepping mode with output constantly enabled. The UN5804 chips are only capable of driving
1.25A max current, but all of the motors that are used have current
ratings above this value. In order to solve this problem, I added IRC's IRL540 power
HEXFETs to drive the motors.
I have made a total of
three (one for each axis) of these driver boards using two different
designs. The first design includes a +5V voltage regulator for the
logic level 5804 signals and while the second design does not.
Since the logic on each board only draws around 100mA, I can use the
same +5V reg for all three boards. These
boards use a single sided design. w/
Vreg
| Component Side
(Top) |
Solder Side
(Bottom) |
 |
 |
w/o
Vreg
| Component Side
(Top) |
Solder Side
(Bottom) |
 |
 |
12V Relay Driver 2_Output - Active High
The machine is currently configured to use a Dremel rotary tool as
the milling tool. In order to control the
power-on/power-off of the Dremel, I built a 12V coil relay board to
switch 120VAC. The circuit schematic for this board is based on the design
from Bill Bowden's
circuit website. The board has two individual relay
circuits, each are active high. This design uses a single sided board
layout.
| Component Side
(Top) |
Solder Side
(Bottom) |
 |
 |
Parallel Port Break-out Board
The parallel port breakout board allows for 12 output signals (8
from DATA port and 4 from CONTROL port) and 3 input signals all (from
the STATUS port). The EMC pinouts from the NIST websote are shown
below. Ian
Harries' website provides a decent tutorial on general interfacing
to the
parallel port. In
this board, pull-up resistors (4.7k) are used to pull all
signal levels to +5V. The lack of an isolation layer between the parallel
port and the driver electronics in this design means that large voltage
spikes could potentially fry the port board. Using the port
connected to the mother board isn't the safest idea, so it's very
important that a separate I/O card ( bought for $9.95) is used in the PC.
This design uses a double-sided PC board.
The pinout for the EMC stepper motor interface is as follows: Output Parallel Port
------ -------------
X direction D0, pin 2
X clock D1, pin 3
Y direction D2, pin 4
Y clock D3, pin 5
Z direction D4, pin 6
Z clock D5, pin 7
Input Parallel Port
----- -------------
X/Y/Z lim + S3, pin 15
X/Y/Z lim - S4, pin 13
X/Y/Z home S5, pin 12
| Component Side
(Top) |
Solder Side
(Bottom) |
 |
 |
Limit/Home Switch Breakout Board
Since EMC only allows for 3 input signals for limit and home
switches, the signals from all three axes need to be wired in
series. All switches are N.C (Normally Closed) and are attached
+5V signal. When any of the axes switches are tripped, line is
brought to signal ground. This design uses a single sided board
layout.
| Component Side
(Top) |
Solder Side
(Bottom) |
 |
 |
Other Miscellaneous
Boards
5804B 3_Axis Stepper Driver
The first stepper driver board used in this project was created based on the application notes from the
UN5804B stepper driver from Allegro
Microsystems This board can drive three axes independently, each with
a separate motor supply voltage. Each axis is controlled by a step
and direction signal. The UN5804B chip has been hard wired to run in
half stepping mode with output constantly enabled. This two signal
control system allows all three motors to be controlled from the output
port. This design may be revised (as time permits) to include an output enable
signal for each axis allowing the motor temperature to
stay relatively low. EMC does not allow for enable signals
for each motor, so some other solution (PIC?) may be needed. This design
uses a single sided board layout.
| Component Side (Top) |
Solder Side (Bottom) |
 |
 |
PWM Microstepping Driver
After browsing a little on Allegro's website, I stumbled across a
set of chips that can be used to build a microstepping driver. The
SLA7044 and
PG001M
chips
from Allegro can be used together to provide microstepping (1/8th step
really) control for up to 3A max current. I built one
prototype board using these chips, but had only limited success.
The motor I attached made a very high pitched humming, but did not
step. I'll be doing more work on these boards once I get the
5804 driver working. The problems with this driver is
most likely due to my messy layout and build. I'm going to attempt
this design again once the project is up and running.
| Board
Type \ File Type |

JPEG Image File |

OrCad File |

Adobe pdf File |

MS Excel |
| Schematic |
|
|
|
N/A |
| Component
Layout |
|
|
|
N/A |
| Bottom
Side Layout |
|
|
|
N/A |
| Top
Side Layout |
|
|
|
N/A |
| Parts
List |
N/A |
N/A |
|
|
12V Relay Driver 2_Output - Active Low
The circuit schematic for this board is based on the design
from Bill Bowden's
circuit website. The board has two individual relay
circuits, each are active low. The current design requires
that the control signal is low before I turn on the power to the control
module. This design uses a single sided board layout.
| Component Side
(Top) |
Solder Side
(Bottom) |
 |
 |
|