CNCCookbook: Be a Better CNC'er

Do you want to be a better CNC'er in 37 Seconds?

Get Better Tool Life, Surface Finish, and Material Removal Rates Fast.

It's that easy. You can install and get results now.

CNC Breakout Boards


How does my PC talk to my machine?

The CNC Breakout Board is used to interface between your PC and the various motor controls, relays, and other devices you want to control on a CNC machine. There are several different types of CNC Breakout Boards and related devices used to deliver this I/O (Input/Output) capability, including Parallel CNC Breakout Boards, USB Breakout Boards, keyboard emulators, and motion control boards. Simply put, the CNC Breakout Board has two functions:

1. Translate the signals used to run a CNC machine to and from the signals a PC expects.

2. Isolate the PC Motherboard from electrical problems that would otherwise fry the Motherboard.

These are both very important functions. In addition, many refer to USB Motion Controllers, such as the Smoothstepper, as "USB Breakout Boards". The role of a Motion Control is to relieve your PC control software from having to do all the work and move some of the most time critical parts of that work to a dedicated hardware device. Since the Motion Controller has no distractions (unlike a PC), and can focus totally on motion control, this enables much higher performance.

Breakout BoardSmoothstepper USB Breakout BoardBreakout Board

CNC Breakout Boards...

Parallel CNC Breakout Boards

Parallel CNC Breakout Boards connect to your PC's parallel port and convert those signals to screw terminals which you may then use in point-to-point wiring to connect up the rest of your system. These are the most commonly used type of breakout board. They're simple, and relatively inexpensive. They have a few drawbacks. First, the parallel port itself is a bit of a throwback to the early days of the PC. There are limitations on its performance, particularly when used with Windows software, such as with Mach 3. You will be limited in how quickly you can send and receive the signals from the board, which may in turn limit the performance of your CNC. For most low end applications, this is not a problem. For better performance, use a Motion Controller (see below).

The second limitation is that of compatibility. PC manufacturers are gradually phasing out parallel ports altogether in favor of USB, and in the meantime, they are sharply controlling the power consumption of these interfaces. As a result, many later model PC's use 3.3 volt signals instead of 5 volts. Some breakout boards work fine with this while others have problems. Be sure to check whether the board you are looking at will be compatible with your PC. Laptops are a particular source of this kind of problem.

Lastly, parallel ports have relatively few I/O channels. Boards typically support 11 or fewer outputs and only 5 inputs. As you can imagine, these go quickly, especially if you are trying to connect an elaborate control panel to your machine. For this reason, you either have a choice to "keep it simple", or you will need to add one or more additional boards to get the job done.

It should be noted that you can add a second parallel port to most computers using a PCI card. Obviously this won't work with a laptop, because they have no PCI slots. In addition, some card/PC combinations can be finicky when used with Mach 3. Be sure to check with others to see if they have been successful with the particular combination you'd like to try.

Lastly, it is important to purchase a board that incorporates opto-isolation (you can look it up in the CNC Dictionary if you are curious). This feature isolates your PC's motherboard from any bad connections, noise, or power surges that may occur in the rest of your circuitry. If you directly connect the parallel port without opto-isolation, you run the risk of destroying your computer's expensive motherboard.

Suppliers of parallel breakout boards include:

Campbell Designs



Homann Designs


Rogers Machine

I've done business with CNC4PC and Homann, and have actually used the CNC4PC board, and both companies were excellent to deal with.

USB Breakout Boards

USB breakout boards come in two varieties. First are full scale Motion Controllers, which we will cover in detail in a moment. Second are boards used to increase the I/O capacity beyond what the parallel port provides. While there are boards that purport to simulate a parallel port with a USB connection, they don't work for CNC applications. The reason is that they are not high enough performance to maintain the exact timing relationships needed to produce a clean pulse train to control multiple servos or steppers. Unfortunately, while USB is the preferred replacement for the parallel port, and it has many advantages, it isn't clear applications like CNC were considered for either the parallel or serial ports when they were first designed. It takes some very clever coding indeed for software like Mach3 to work on a parallel port, and each new release of Windows seems to make it a little harder.

As I write this, the only USB Breakout Board I am aware of intended solely to increase I/O capacity is one called ModIO that was developed by an Australian company called Homann Designs. This board is capable of adding 8 inputs, 8 outputs, as well as 3 analog inputs, so it is quite powerful. This board is very well supported by the CNC community, so if you need the extra I/O, I would highly recommend it. I've dealt with Peter Homann on occasion and he is extremely helpful and works hard to give what he can to the CNC community.

There are USB boards (the Smoothstepper is one) that can actually generate step and direction pulses suitable for CNC, but these are more properly motion controllers than breakout boards. See the section below for more.

Keyboard Emulators

Keyboard emulators are another approach to extending the basic I/O provided by a parallel breakout card. They do this by converting on/off input signals to simulated key sequences. For example, you could connect a switch labeled "Flood Coolant On" to an input on a keyboard emulator and when the switch closed, it would forward a key sequence to Mach 3 which could be interpreted to turn on the coolant. Keyboard emulators are simple to hook up: they typically accept your keyboard's plug and you use a keyboard extension cable to go from the emulator to the PC's normal keyboard input socket.

There are a number of keyboard emulators out there, but I believe the most popular are Pokeys and the iPac, which is sold Ultimarc. The basic iPac provides an additional 28 inputs, which is substantial. There is an enhanced version that allows 56 inputs. Pokeys is a 55 I/O channel device.

The thing about Keyboard Emulators is that since they're just sending key sequences, they have a pretty slow response time. You wouldn't want to use one for any application that required rapid responses or a good sense of "touch" or "feel". For example, I would tend to avoid using them with joysticks. But they are a good way to pick up all the extra buttons on your control panel.

Motion Controllers (USB Breakout Boards)

At the high end of the breakout board spectrum are the motion controllers. They are so high their makers probably object to comparing them to breakout boards. I only do so because they replace the breakout board. Mach3 works with several, including the Smoothstepper (probably the most popular as I write this), the Galil, and others.

These boards offer a tremendous performance upgrade over parallel boards and the like. Their primary disadvantage is they're a less mature technology. Since they haven't been with us for long, and since most of the Mach community is using parallel ports rather than motion controllers, you may find it is a little harder to get help. I have a Smoothstepper, which has worked great.

From Left to Right: GRex, Gecko Drives, and DC Stepper Power Supply for my CNC Lathe project...

Before taking any final steps on a motion controller for your own project, I highly recommend you spend a lot of time getting acquainted with the various online communities associated with your controller software and the motion board in question. Find out what the board's current limitations are, decide whether they matter to you, and get a sense of how often the board and its software are updated and how happy the user community is.

Performance of Mach3 with a motion controller is a lot better than with a parallel port and Mach3 is much less prone to the finicky problems that some report even though I'm running on a totally antiquated boat anchor of a laptop.

For more on motion controllers, see our 2-part series: Motion Control Boards Take Mach3 from Hobby Class to Industrial Grade.

You may also want to read about how to set up a Smoothstepper for my servo-based mill.

Other Black Boxes

Suppose you have an older CNC machine, or perhaps some surplus servo drivers, and you want to run them with Mach 3, but the controllers expect analog rather than step + direction? You could junk the controllers and buy new Gecko or Rutex Step/Dir servo drivers, but that is an expensive proposition if you believe the drivers you have are working. This is especially true for the higher powered servos on a larger machine.

There are boards out there that will do this conversion.

What about spindle speed control? In most cases, VFD's and other speed controllers want a voltage that is proportional to the desired spindle speed. Mach 3, on the other hand, puts out digital pulses, so you need a board to convert from the digital world of Mach 3 on one output pin to the analog realm expected by the VFD. Hopefully the board will isolate the sensitive digital electronics from any potential for line voltages to get back into the digital side as well. Homann Designs comes to the rescue once again with a couple of boards to perform this function. CNC4PC and others also make boards to do this.


For More on CNC Controllers, Conversions, and Retrofits, Please See:

Accuracy and Performance: What factors control the accuracy and performance of my CNC machine?

Debugging CNC Electronics: Thoughts on debugging CNC electronics.

Enclosure Gallery: Looking for ideas for your electronics enclosure?

Eliminating Backlash Part 1: I'm converting a manual machine or building a new machine, how do I get rid of backlash? Why should I care?

Eliminating Backlash Part 2: My machine has all the "right" stuff, but it still has backlash. How do I get rid of it?

Master Checklist: A checklist of everything that goes into a CNC machine project together with links to appropriate pages here.

Noise Problems: Diagnosing and fixing noise problems in CNC systems.

Stepper, Servo & Backlash Simulator: Wherein we explore the perennial debate over steppers vs servos and the effects of backlash.




Be sure to check out G-Wizard, our Machinist's Software!


Back to CNC Cookbook Home...


Sale Details

Featured Articles

Step-By-Step Guide to Making CNC Parts

CNC Router Cutter Types

Why Use a Single Flute Endmill?

Step and Servo Motor Sizing

The Truth About Tool Deflection

10 TIps for Router Aluminum Cutting

2 Tools for Calculating Cut Depth and Stepover

CNC Machine Hourly Rate Calculator

Special Purpose CNC Calculators

Feeds and Speeds Guide

CNC Cutter Guide

Feeds and Speeds By Material

G-Code Tutorial

  Feed Rate Calculator

Sales, and Special Deals


GCode is complicated.
G-Wizard Editor
makes it easy.

Try It!


Feeds and Speeds:
Made Easy.

Try G-Wizard



Do you want to be a better CNC'er in 37 Seconds?

Get Better Tool Life, Surface Finish, and Material Removal Rates Fast.

It's that easy. You can install and get results now.


Start Now, It's Free!