Free and Easy: PCB

In the interests of keeping the design simple, versatile and cheap, we decided that the circuit should run directly from the computer's parallel port, and should be a single sided board. As there are not enough IO lines on the parallel port to control everything on the CNC machine, some form of multiplexing is required. Rather than introduce a lot of logic chips, we decided to go for a Xilinx 9536 CPLD. This would allow us to generate enough IO lines, and also to do various jobs to make the life of the computer software easier, such as generating the stepper motor sequences and providing failsafe emergency stop interlocking.

The use of a programmable device also means that the hardware can effectively be changed just by reprogramming. All of the electronic components on the board apart from the xilinx chip and a couple of capacitors are required for the programming of the chip. This means that if you have more than one controller board, you only need to fully populate one of them.

We decided that the stepper power drivers should be on separate boards so that different driver boards could be built to suit different motors, and to keep all circuit boards simple enough to be made in school Design and Technology departments. The design used allows either 5V or 12V stepper motors to be used, and uses constant current output stages to get the best possible performance from the motors without the expense and complexity of chopper outputs.

The boards were designed using an evaluation version of Eagle, available for free download from CadSoft in Germany at http://www.cadsoft.de/freeware.htm. Windows and Linux versions of the software are available.

Here are the Eagle files:

Control board
Stepper board

The Xilinx 9536 chip can be programmed using the WebPack software which can be freely downloaded from http://www.xilinx.com/sxpresso/webpack.htm. You will need to download the device fitter and device programmer tools.

Here are the Xilinx files:

Verilog file
User constraints file

Project hosting kindly provided by