6 Solutions for Mach3 Obsolete Parallel Port Interface

Mach3 Main Screen
Mach3 Main Screen

The parallel port has been discontinued on PCs for many years now. It was mainly used to connect a PC to a printer. Mach3 was designed to use this port to send step and direction pulses to the CNC controller and receive inputs such as limit switches. Mach3 is still popular in the CNC world, even though there is a newer, more modern version: Mach4.

So if you need a solution so you can still use Mach3, then this article lists 6 possible options.  Many Chinese sellers include Mach3 with their CNC controllers that use the DB25 parallel port.

Mach3 Software

Mach3 is CNC control software that effectively turns a Windows 32-bit computer into a machine controller. It interprets G-code and drives stepper motors via the computer’s parallel port. This setup was revolutionary at the time, but it comes with some important limitations today.

  • Platform Compatibility
    Mach3 only natively supports 32-bit Windows systems up to Windows 7 when using the built-in parallel port driver. This driver controls the timing of stepper motor pulses. While it’s possible to run Mach3 on newer systems — including Windows 10 64-bit — this requires specialised external motion controllers or hardware adapters.
  • Advancing Technologies
    Over time, two key things have changed:
    1. Parallel ports have become obsolete, replaced by USB, Ethernet, and dedicated motion controllers.
    2. The Windows codebase has evolved, making it difficult to use the original Mach3 parallel port driver reliably on newer systems.
  • Timing Considerations
    Windows is not a real-time operating system (RTOS). This means other tasks running in the background can interrupt the CPU at critical moments. When that happens, the precise timing of Mach3’s step pulses can be disrupted, which is especially noticeable at higher feed rates or when the system is under load.
  • Tips for Reliable Operation
    If you do use Mach3 with a parallel port driver:
    • Dedicate a separate PC solely to Mach3.
    • Avoid internet connections and disable antivirus software to minimise interruptions.
    • Disable unnecessary Windows services to reduce CPU load.
    • Consider using an external motion controller (such as SmoothStepper or UC100) to offload pulse generation from the PC to dedicated hardware.

Even though Mach3 is an older software and has not received updates for several years, it remains a powerful and feature-rich solution when set up correctly.

From Mach3 website

“Mach3 will run on any Windows OS from Windows 2000 through Windows 8. The parallel port driver included with Mach3 will only work with 32-bit DESKTOP computers with versions of Windows 2000 through Windows 7, but will not work with any 64-bit version of Windows or with Windows 8. Windows 8 and 64-bit versions require an external motion device, which can be purchased very reasonably.”

The 6 solutions

1 – Use an old desktop PC with a parallel port

This is probably the cheapest option and one that’s known to work. I had several old Dell desktops donated by friends and family running Windows XP 32-bit with 2GB of RAM.  Mach3 only needs 512MB. Just plug in the DB-25 cable, and that’s it. I ran it for many years like this. You can pick up an old desktop on eBay for around £50/$70, and this running Windows XP or Windows 7 32-bit with 2GB of RAM will be fine for Mach3.

Mach3 OpenBuilds OX router
Mach3 on my Dell GX620 runs just fine

Here’s the TB6560 4-axis controller I used with the parallel cable attached and then hooked up to my Dell desktop.  I’ve found Dell desktops to be very good as a CNC controller, and you can still find drivers for them on the Dell website.  I’ve made several wings and fuselages with it and also used it on my CNC router with a different configuration file.

tb6560 with parallel port connection

2 – Use a newer desktop PC with a parallel port add-on card

Some newer PCs don’t have the parallel port but have expansion slots for PCI add-on cards. These cards are quite cheap and, once installed, work just like the solution above. They will probably present themselves as a different port and memory address, but Mach3 can be configured with these settings. Ensure you get a 5 Volt version because some PCI slots and cards run at 3.3 volts, such as PCI Express (PCI-E), which may not be enough to drive the controller.


3 – USB to Parallel converters

If you want to use USB and still have a parallel controller card, this is probably the best option and is well-tried and tested with good support from the vendor.

These are specialised adapters known to work with Mach3, not to be confused with generic USB to parallel adapters. It needs driver software to work correctly with Mach3. These adapters connect to the CNC control board DB-25 port and the PC’s USB port. Then you’ll need to load the supplied driver in Mach3

This one from CNCDrive is very small, which fits into a shell case of the DB25 adapter and gets good reviews on the CNC forums. Be careful, there are quite a few clones of this much cheaper, but if you do some research, you’ll find they often don’t work. Support will be poor or non-existent.

Check their website here https://cncdrive.com/UC100.html

This board from Warp9 connects your CNC parallel controller and then to the USB port on the PC/Laptop

The USB SmoothStepper (USS) connects to your PC via USB, has 2 parallel ports and a third dedicated input port.  The SmoothStepper's parallel ports allow it to integrate seamlessly with most external devices (CNC equipment and Break Out Boards) that require a Parallel Port interface, with only a ribbon cable to connect them together.
smoothstepper
Warp9 USB Smoothstepper

4.1 – USB Breakout Board (BOB)

This option allows you to run Mach3 on more modern hardware and is relatively cheap.

TB6600 Drivers with Mach3 USB break out board
TB6600 Drivers with Mach3 USB breakout board

4.2 – USB controller board with onboard drivers

TB6600 and TB6560  controller boards. There are two types: the all-in-one board in 3 and 4 axes or as a breakout board and stepper drivers separately.

TB6560 USB all-in-one controller for Mach3

Planet-CNC board produce a range of boards. This is their 4-axis USB  https://planet-cnc.com uses its software instead of Mach 3

Another option is this

NVCM USB Controller for Mach3
NVCM USB Controller for Mach3

 PoKeys57CNC has both an Ethernet and USB interface and supports both Mach3 and Mach4

5 – Ethernet Port Control Boards

These boards utilise the computer’s LAN port (RJ45 port) for connection. SmoothStepper from Warp9 is probably the best known. A little bit more involved to configure, but the documentation is good.

Another option is the CNCDrive UC400ETH, which has good reviews and connects to your parallel port board.

6 – Alternatives to Mach3

Use Mach4

Mach4 is the latest version and is supported on both 32-bit and 64-bit Windows operating systems, running on all versions of Windows from XP to Windows 10. You will need a motion controller card, such as a USB or Ethernet controller. Check with NewFangled Solutions, who are the developers, and list compatible boards and plugins.

Use LinuxCNC

LinuxCNC software is an alternative to Mach3, but it doesn’t support USB connections. You can use boards from https://www.mesanet.com/. It is a real-time operating system and doesn’t have the CPU timing and interrupt issues that Mach3 does. I’ve included it here because it is open source, and if your budget is limited, it’s a good option. Here’s my post on LinuxCNC

Here’s another post on using LinuxCNC for foam cutting, with a video tutorial, https://rckeith.co.uk/foam-wing-free-cnc-software/.

YouTube player
Arduino USB-based Micro Controllers

These have become very popular as most 3d printers use a version of these, and many add-ons can be purchased relatively cheaply.  Shields are extension boards that plug into an Arduino Uno or Mega. 

The two most popular are the CNC Shield and RAMPS, which provide 3 and 4-axis stepper drivers. GRBL or grblHAL is the software that drives the boards. The drivers can only supply at most 2 amps with cooling, so you are limited to NEMA 17 and some specific NEMA 23 stepper motors. There are ways to use higher amperage NEMA 23 or bigger, but it requires separate drive modules and adapters. See how I converted mine Converting my CNC Router to a USB controller

I built a new Hot Wire CNC Foam Cutter using an Arduino Mega and a RAMPS1.4 kit with NEMA17 stepper motors.  All the details are here, and it works well.

How I converted my Mach 3 CNC Router to USB

I’ve created a new post showing how I converted my OX CNC Router, which I ran with Mach3 and LinuxCNC. I now use the MKS Tinybee board with grblHAL. This is an ESP32-based controller with external drivers running SenderIO software. Full details and a video

Software

Once you go down the Arduino route then you’ll no longer be able to use Mach3.  There are a few options, but one of the most popular is Universal G-code Sender (UGS).  There is also software for Foam cutters. Check my latest release of the GRBL HotWire Mega 5X

OptionPro’sCon’s
Use an old desktop PC with a parallel port The cheapest option is if you already have a more recent desktop PCMaybe harder to get as time marches on
Use a newer desktop PC with a parallel port add-on card It can be more expensive unless you opt for a Chinese offering. Support for boards supplied from the USA and Europe may be betterNo upgrade from Mach3, and it needs a separate supported motion controller
USB to Parallel AdaptersElectrically isolate your PC from your CNC equipment.Watch out for UC100 clones that are much cheaper. Many users have reported issues.
USB controller boards Works with modern PCs. No upgrade from Mach3, and needs a separate supported motion controller
Ethernet Port Control Boards It needs to be powered by an external supply. A bit more tricky to configureIt can be more expensive unless you opt for a Chinese offering. Support for boards supplied from the USA and Europe may be better
alternative – Mach4 Works with PCs and laptops No upgrade from Mach3, and it needs a separate supported motion controller
alternative – LinuxCNC Free and can use Anything I/O cards Cards can be tricky to set up
alternative – Arduino Free and very affordable hardwareController software can lack some of Mach3’s additional capabilities.

Conclusion

As you can see, there is a lot to consider, and your choice depends on how much you are willing to spend and what equipment you already have.

If you are looking to get into CNC, I would probably advise you now to use one of the USB-based controllers with the free control software. If you have and have an old parallel port desktop, then I would choose one of the kits with a parallel board.

One thing to remember is that Mach3 requires a license; otherwise, it just stops after 500 lines of G-code.  If you can, then I would suggest Mach4 for long-term use and support.  LinuxCNC is a good option. Here’s a link to my post on getting started with LinuxCNC using a routerHot Wire CNC is here.

Arduino with GRBL is a good choice, and because it’s so popular, it has good support from the community. Controllers and stepper drivers are relatively inexpensive, and the free software makes this a good choice in my opinion.

I haven’t covered every possible solution here, but ones that I feel are within the reach of most hobbyists.

Happy g-coding

Similar Posts