CNC Mill Conversion - Electrical

Conversion circa 2000

A CNC machine has two major electrical components, a computer running a control program and motor drivers. The computer decodes the G-code instructions and passes signals to the motor drivers. These drivers further decode the signals and supply power to the motors. In small hobby machines the computer is usually a PC running a control program. It is most common for the PC to supply signals to the motor drivers through its parallel port. In a stepper system, as opposed to a servo system, the signals are step and direction for each axis. The drivers energize stepper motor coils according to these signals. The drivers requires significant power and an additional higher voltage power supply is required.

I initially used Camtronics 5A stepper driver boards with 654 oz-in steppers motors on each axis. I don't believe these 36V drivers are available anymore. The power supply is made up from parts recommended and purchased from Camatronics. The power supply and drivers were housed in an old Kay pro 286 computer case. Heat sinks and forced air used with each driver. The picture below shows the drivers in their case. You can see the heat sinks mounted to the power transistors.

The parallel port is connected to a 25DB connector. This is wired to each driver board. Likewise output from each driver is wired to a plug on the back of the case. I've found it handy to have plugs for these rather than hard wired. Since each plug has the same pin out motors can be moved from drive to drive for testing.

The controller was a Pentium computer running EMC. This computer was new when I started the process in 2000 but would now be considered old. I ran an old version of EMC on Red Hat 6 Linux. Back then it was a real adventure to get EMC up and running. It took me a week of work to accomplish this, but I knew nothing of Linux at the time. This did introduce me to Linux which is now my main operating system.

This set up has worked well but there were a few problems. I was only able to get speeds of 15-20 in/min. This is fine for cutting but becomes tiring for rapid moves, like tool changes. The low speed is due to the 36 volt drivers, a higher voltage would give higher speeds. I was also losing steps in the Z direction. This only occurred during heavy loads, like drilling. But lost steps is a real problem with a stepper machine.

Updated Controller circa 2007

I have replaced the electronics with a higher performance system. I used G202 Gecko stepper drivers. I set these up with a 70V power supply. The power supply I built using a toroidal transformer from AnTek and a rectifier from Mouser. I also used a PMDX-131 breakout board. The Gecko drives plug right into the PMDX board and is socketed for a parallel port plug. This greatly reduces the hand wiring needed, a real time saver. The PMDX also has a low voltage power supply to power the Geckos, circuitry for limit switches and other features. The picture below shows the drivers in their case.

The case is from a very old Z80 S100 bus computer system. If you remember these you have been fooling with computers for way too long. The installation is much neater than the first controller box, mainly due to the PMDX board. The original large 120V case fan was kept. The Geckos were mounted on a heat sink as below.

Cutting down the heat-sink and mounting it was the most involved part of building the controller box. It may not be needed, but the cooler electronics run the better.

I purchased a new computer for my office a few years ago. This propagated "newer" computers down the chain ending in a better computer for the CNC. This is a 1.0 GHz Pentium III with 386 Mb memory. The Gecko G202 are micro-stepping drives which require 5X the pulse rate the Camtronics half step drives did. I don't think the old computer would have handled this or the updated Linux system.

I'm still using EMC. It is now based on Ubuntu rather than Red Hat. The installation was much easier. I obtained an EMC Ubuntu image and burned a boot CD without incident. I booted from the CD and then installed to hard-drive. This took some two hours, a great improvement over the week it took me 6 or 7 years ago. With this ease on installation, excellent performance, and low cost (free) there's little reason to look for another controller.

With this new driver box I can get reliable rapids of 65-70 in/min. Quite adequate for a knee mill size machine. Also adequate to scare the bejesus out of ya. So it has solved the speed problem. I haven't yet systematically checked for lost steps in drilling but haven't noticed any lost steps either.

Computer Upgrade circa 2013

In 2013 I got the bug to update my LinuxCNC (new name for EMC) control software. Well, I found the Pentium I 1.0GHz 386Mb computer wasn't up to running a newer Linux system. So, I update the computer to a Intel Atom Dual-Core Mini ITX board with (I think) 4Gb memory installed. This was suggested as a reasonable computer by those on the LinuxCNC Forum. It's getting harder to find new computers with parallel ports, this one fits the bill. I did buy and install a PCI parallel port add on. Not currently using it but it does work fine with LinuxCNC.


I'm very happy with the system now, both mechanics and electronics. It's amazing how much progress hobby CNC has made since 2000, especially in available electronics. The new driver was soooo much easier to build up. And LinuxCNC keeps making improvements. It's becoming easy to install.