This web site uses cookies. By continuing to browse the site you are agreeing to our use of cookies. Find out more.


Last update: 31/07/2015


The parallel port of our computers is the most common device to control a CNC machine. Using this port the drivers of the motors of the cnc machine can be controlled very quickly and inexpensively because:

  • a parallel port is (almost) always present in any computer;

  • there aren't particular electronic devices that need to be programmed inside the controller (USB or serial ports usually need a specific programmed microcontroller or specific electronic devices).

This is the list of the usable pins of a parallel port for both the standard connectors: DB25 or Centronics, normally used to connect a printer to our pc. As we can see we have 12 pins available as Output and 5 pins available as Input, to and from the CNC machine.

While the five INPUT pins have their natural use (the emergency stop button and the control of the physical limits of the machine) we have 12 pins available to control automatically all the external devices (the motor of our milling machine, a vacuum pump to clean the surface during the milling process or a water pump to cool the milling head, the speed and even the direction of the spindle etc) and to control the movements of the axes plus all pins necessary to enable/disable the drivers/controllers (even to prevent the overheating of the driver ICs).

For this reason it is really important to decide the use of every single pin accordingly to the CNC machine we are going to realize and accordingly to the software used to realize our manufacts.

Luckily all software used to drive a CNC machine implements functions to invert the polarity of every pin. This means that if we have realized a machine with a left-to-right movement of the axes with a 'HIGH' state of the pin of the port very easily we can change this movement from right-to-left simply inverting the polarity of the relative pin.

For the above mentioned reasons having 12 pins available for output and leaving 2-3 pins to controll external devices (through a relays interface) we can normally control upto 6 axes (it depends by the software) if the enable/disable pins are not used or 4 axis if they are used.

The necessity of the control of more axes (!!!) can be solved simply adding another pci parallel port to the pc. Normally a stepper motor controller uses quite relatively high voltages (15-80V) therefore any breakage of the controller board, being directly connected to the parallel port of the computer, could cause damages to the mainboard of the personal computer. 

The solution consists using a further parallel port inserted in a free pci socket of the motherboard. Usually these boards are very cheap and can be purchased in any online shop of the web.

Using an optoelectronic protection, made by opto-couplers, can use this board to implement further controlling signals from the cnc machine considering that almost all software created to control a cnc machine can be configured to use more than a single parallel port. A second parallel port, therefore, can be used to acquire more information from the machine itself.


We have seen that a well configured cnc machine needs a lot of pins and a single parallel port could be not enough. Usually a parallel port driving 3 stepper motors, for instance, uses:

  • 6 pin for step-dir signals;
  • 3 pins to enable the stepper controller driver;
  • 1 pin to control a relay (spindle on/off);
  • 3 pins for the home positions (if used);
  • 3 pins for the limit positions (if used);
  • 1 pin for a manual emergency stop;
  • 1 pin for a cooler pump (if used) or a vacuum cleaner;


A lot of pins considering that from any parallel port (db25) are available only:

  • 12 pins (1,2,3,4,5,6,7,8,9,14,16,17) for output;
  • 5 pins (10,11,12,13,15) for input.
Using a second parallel port will allow a full configuration of a cnc machine and, moreover, the use of this second parallel port can be considered a must if a cnc machine has more than 3 axes.
Diritti riservati 2008-2015. Tutti i marchi riportati sono detenuti dai legittimi proprietari. Tutto il materiale e` liberamente utilizzabile ma non per scopi commerciali. Non si assume alcuna responsabilita` sul materiale pubblicato per eventuali danni diretti o indiretti che possano derivare dall`utilizzo di schemi, progetti o altro materiale presente nel sito. Inviare una mail a: (contenuti) (webserver) per domande e/o suggerimenti.