Parallel demo with stepper motor and serial LCD display.
Fig. 1 Parallel demo with stepper motor and serial LCD display.


Hardware Review Connecting Parallel Ports

by Lewis Loflin

This a quick overview of hardware. I'll have more detailed pages on each subject.

Often known as a parallel port used from the 1970s though ~2008. It is also known as a Centronics port or printer port.

While greatly upgraded in the early 1990s for my purposes I'm interested in computers built after 2000.

They are still used in industrial settings to control CNC machines. Modules with cables are cheap on Ebay.

My purpose here is to build, test electronics including interfacing. This is real time hardware control using C under Linux.

The parallel port supplies a complete bi-directional 8-bit port, five input pins, and four control output pins. More below.

Fig. 1 is my test setup consisting of my home built interface board. One can build or buy - buy could be far easier. More on that below.

In this case I'm controlling a stepper motor and a generic 2 line by 16 character Hitachi HD44780 LCD display.

The display can be connected directly or in my case through a serial interface I designed. This was also used on Arduino and Raspberry Pi with almost similar code.

SN74164 interfaced with Hitachi HD44780 LCD display.
Fig. 2 SN74164 interfaced with Hitachi HD44780 LCD display.


Fig. 2 is my serial LCD board. That will be covered on another page.

See the following the same circuit used elsewhere:

Serial LCD Display You Tube:
74C164 shift register with Microchip PIC
74C164 shift register with Arduino
SN74164 SSR with a LCD Display and Arduino

Mother board back panel I/O with printer and serial ports.
Fig. 3 Mother board back panel I/O with printer and serial ports.


This is often on the I/O panel on the back of PC motherboards. Sometimes it will be separate from the motherboard on an external bracket. It is connected to the board with a plug in header.

Today the parallel port along with serial ports have been replaced by Universal Serial Buss or USB ports.

PCI parallel port and 2 serial ports expansion card.
Fig. 4 PCI parallel port and 2 serial ports expansion card.


This does not refer plug in cards inserted into a PCI or PCI-E slot!

Fig. 4 is one example of a parallel port expansion card. The hardware addresses DO NOT map back to the original hardware. This requires special drivers even under Linux.

There are also USB to parallel port DB25 converters on Amazon. These also won't map back to original hardware and are useless here.

Other than the USB ports (now USB 3.0) and audio none of the other ports are used on modern PCs.

There are a lot of good computers from 2002-2010 still out there along with surplus motherboards.

Electrical connections for DB25 parallel port.
Fig. 5 Electrical connections for DB25 parallel port.


Fig. 5 illustrates the electrical connections on a parallel port. This a 25-pin female connector.

The inputs and outputs are true 5-volt logic. The output should have some type of driver circuit and the inputs should have opto-coupler isolation.

The base address I use is 0x378.

Pins 2-9 are a complete bidirectional 8-bit port labeled D0-D9 respectively. This is the DATA register at address 0x378.

Direction is determined by bit C5 in the control register at Ox37A. That bit DOES NOT appear on the connector!

Pins 10, 11, 12, 13, and 15 are inputs. This is the STATUS register. The pins are read at register address 0x379. They are pulled HIGH to 5-volts internally.

Pin 11 or register bit S7 is inverted - a HIGH input will read LOW. Bits S0-S2 are unused.

Finally the CONTROL port is at address 0x37A. These are open-collector outputs I believe.

The bits are labeled C0-C3. Bits C0, C1, and C3 are inverted - a HIGH written to the bit produces a LOW output.

This hardware must be known to program the port.

Screw terminal type DB25 parallel port breakout board.
Fig. 6 Screw terminal type DB25 parallel port breakout board.


Fig. 6 is a basic parallel port breakout board from Ebay. The connections go directly to the screw terminals.

If one uses something like this be careful. One could damage the parallel port if wired incorrectly.

There are no power connections or connector cable.

Parallel port control, breakout board for CNC machines.
Fig. 7 Parallel port control, breakout board for CNC machines.


Fig. 7 illustrates a CNC machine parallel port control board. This is designed to connect to stepper motor controllers, switches, etc. It also includes a relay for powering the spindle motor or laser.

All connections are on screw terminal blocks. One block supplies higher voltage for the laser or spindle motor. 5-volt power for the rest of the circuits is supplied from a USB cable.

I bought one of these for $10 that included both cables.

A CNC machine is defined by www.thomasnet.com as,

The term CNC stands for 'computer numerical control', and the CNC machining definition is that it is a subtractive manufacturing process which typically employs computerized controls and machine tools to remove layers of material from a stock piece—known as the blank or work piece - and produces a custom-designed part. This process is suitable for a wide range of materials, including metals, plastics, wood, glass, foam, and composites, and finds application in a variety of industries, such as large CNC machining and CNC machining aerospace parts. Note there is a difference between the process and the machine. The CNC machine definition is that it represents the actual programmable machine that is capable of autonomously performing the operations of CNC machining.

Subtractive manufacturing processes, such as CNC machining, are often presented in contrast to additive manufacturing processes, such as 3D printing...

TB6600 stepper motor controller electrical connections.
Fig. 9 TB6600 stepper motor controller electrical connections.


The parallel port control board in Fig. 8 can't directly drive motors.

A CNC machine operating through a parallel port using stepper motors requires a stepper motor controller such as the TB6600.

My home-built control board in Fig. 1 was built before I got the factory version. They used the same bi-directional DATA driver I used with a SN74LS245. I used power MOSFET drivers on the CONTROL port such as the TC4420.

Youtube Videos

View all of my You Tube Videos
Also visit and subscribe to My YouTube Channel

Web site Copyright Lewis Loflin, All rights reserved.
If using this material on another site, please provide a link back to my site.