The parallel port has been discontinued on PC’s for several years now. It was mainly used to connecting a PC to a printer. Mach3 was designed to use this port to send the step, direction pulse to the CNC controller and receive some inputs such as limit switches. Mach3 is still very popular in the CNC world even though there is a new more modern version Mach4.
So if you need a solution so you can still use Mach3 then this article list 6 possible options. Many of the Chinese sellers bundle in Mach3 with their CNC controllers that are supplied with a DB25 parallel port.
The 6 Solutions
These are the six solutions I’ll discuss and provide links to the hardware and software with the pros and cons. The solutions discussed I think should be affordable to most hobbyists.
- Old desktop PC with a parallel port connected to a parallel controller
- Newer desktop PC with a parallel port add-on card
- USB to Parallel converters
- USB controller boards
- Ethernet Port controller Boards
- Alternatives – Mach4, LinuxCNC,JediCut and Arduino USB based Micro Controllers
The Mach3 software turns a Windows 32-bit computer into a CNC machine controller. It only works on 32 bit PC’s up to Windows 7 with the parallel port driver, to control the motion of the stepper motors by processing G-Code. It has some nice extra features as well. There is other software you can use which I’ll cover briefly in this article, but Mach3 is probably the most widely used for the CNC hobbyist.
Technologies have advanced over time, and not only is the parallel port become obsolete, but the Windows code base has changed to the point where it is sometimes very difficult to get the parallel port working with the Mach3 driver.
Mach3 is quite old now and has not had any updates for a few years now. The reason for this is that Windows is not a Real Time Operating System and there can be issues with CPU timing. When other tasks cause interrupts it can mess with the steps pluses need to run the cut. It gets more pronounced when to try to run the system faster.
If you do use Mach3 then don’t run anything else on the computer that may interrupt it. Mine isn’t connected to the internet and has no anti-virus installed. I also disable lots of unnecessary services and its been very reliable.
“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 of windows require an external motion device which can be purchased very reasonably.”
Use an old desktop PC with a parallel port
This is probably the cheapest option and one that’s known to work. I have several old Dell desktops donated from 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. This is how I run Mach3 but there may come a time when I need to move to USB oe Ethernet. You can pick up and old desktop on eBay for around £50/$70 and this running Windows XP or Windows 7 32bit with 2GB of RAM will be absolutely fine for Mach3.
Here’s my TB6560 4 axis controller with the parallel cable attached and then hooked up to my Dell desktop. Personally, 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. Here’s a link to the controller TB6560 that I use. I’ve made several wings and fuselages with it and also use it on my CNC router with a different configuration file.
Use a newer desktop PC with a parallel port add-on card
Some newer PC’s 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. Make sure you get a 5 Volt version some PCI slots and cards run at 3.3 volts which may not be enough to drive the controller. The one link here is a 5 Volt version.
Check the link for details and prices on Amazon Rosewill Single Parallel (SPP/PS2/EPP/ECP) Universal Low-Profile PCI card
USB to Parallel converters
These are specialized adapters known to work with Mach3, not to be confused with generic USB to parallel adapters. It needs driver software to make it work correctly with Mach3. These adapters connect to the CNC control boards DB-25 port and then to the PC’s USB port. Then you’ll need to load the supplied driver in Mach3 This one from CNCDrive is very small and fits in the shell case of the DB25 adapter and gets good reviews on the CNC forums. Check the latest price on Amazon US site.
Warp9 produce a board here are the details of how it connects from their website
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.
USB controller boards
- Using a dedicated board that then connects to separate driver modules and then the steppers. The advantage of this method is that if one of the drivers goes faulty you just replace that. They tend to use the TB6600 chip which can handle bigger currents and voltages than the TB6560
- 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.
A USB TB6560 4 Axis Board from Amazon
A USB TB6600 4 Axis Board from Amazon
- Planet-CNC board produce a range of boards this is there 4 axis USB https://planet-cnc.com/product/cnc-usb-controller-mk34-4-axis/ uses their own software instead of Mach 3
- Another option is this from AliExpress http://s.click.aliexpress.com/e/LeEhmRQ
- PoKeys57CNC as both an Ethernet and USB interface and support both Mach3 and Mach4
Ethernet Port control Boards
These use the computers LAN port (RJ45 port) to connect to a controller board that . SmoothStepper from Warp9 is probably the best known and the do a USB version as well. A little bit more involved to configure but the documentation is very good.
Alternatives to Mach3
Mach4 is the latest version and is supported on 32bit and 64bit Windows operating systems and will run on all versions of Windows from XP to Windows 10. You will need to use a motion controller card as discussed above such as a USB or Ethernet controllers. Check with NewFangled Solutions who are the developers for compatible boards and plugins.
Jedicut is an open source solution designed especially for 4 axis foam cutting and interfaces with the controller. There is a USB option. If you’re on a limited budget this is certainly a good option. Here’s my video on Jedicut
LinuxCNC is another pieces of software that you can use instead of Mach3 but it doesn’t have a USB but you can use Anything I/O boards from http://www.mesanet.com/ This is a Real Time Operating system and doesn’t have the issues Mach3 does with CPU timings and interrupts. I’ve included it here because its open source and again if your budget is limited this is a good option, here’s my post on LinuxCNC
Here’s another post on using LinuxCNC for foam cutting which includes a video tutorial as well, http://www.rckeith.co.uk/foam-wing-free-cnc-software/.
Arduino USB based Micro Controllers
These have become very popular as most 3d printers use a version of these and there are many add-ons that can be purchased relatively cheaply. Shields are extension boards that plug into an Arduino Uno of Mega. The 2 most popular are the GRBL and RAMPS which provide 3 and 4 axis stepper drivers, The drivers can only supply at most 2 amps with cooling so you’re are limited to NEMA 17 stepper motors. There is a way to use NEMA 23 or bigger but it requires separate drive modules and adapters.
I’ll be putting together a more in-depth article very soon on converting my CNC Foam Cutter to using an Arduino Controller. So keep checking back. One way will be very inexpensive using an Arduino Nano with the TB6560 4 axis Parallel board. The other will be using a RAMPS board with NEMA 23 motors
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 Gcode Sender (UGS). There is also software for Foam cutters as well a very good article here on RCgroups
|Use and old desktop PC with a parallel port||Cheap tried and tested||Maybe harder to get as time marches on|
|Use a newer desktop PC with a parallel port add-on card||Cheapest option if you already have a more recent desktop PC||Some adapters have been known not to work e.e. 3.3 Volt version|
|USB to Parallel converters||Supported my Mach3||More expensive than the above needs to use good quality USB cables|
|USB controller boards||Works with modern PC’s but Mach3 will only be supported on up to Windows 7 32bit.||As above and can be more expensive unless you opt for a Chinese offering. Support for boards supplied from USA and Europe may be better|
|Ethernet Port control Boards||Electrically isolates your PC from your CNC equipment. This means noise and voltage spikes from your motors will not flow back into your PC||Needs to be powered from an external supply,|
|alternative – Mach4||Works with PC’s and laptops||No upgrade from Mach3|
|alternative – Jedicut||Free can use USB||USB can be tricky to get going|
|alternative – LinuxCNC||Free and can use Anything I/O cards||Cards can be tricky to set up|
|alternative – Arduino||Free software and very affordable||Requires some coding skills if you need to make changes. Not a bad thing though and develops you skills.|
As you can see there is a lot to consider and your choice really depends on how much you are willing to spend and what equipment you have already.
If you are looking to get into CNC and have an old desktop, then I would choose one of the kits with a parallel board otherwise I go for a USB or Arduino kits as listed above.
One thing to remember is that Mach3 requires a license otherwise it just stops after 500 lines of G-code. If you are able then I would suggest for long-term use and support get Mach4 with a motion controller. LinuxCNC is now my preferred option good option, here’s a link to my post on getting started with LinuxCNC using a router, Hot Wire CNC is here although I still use it with the parallel port.
Arduino is a very good choice and because it’s so popular it has good support via the community and price are good. I’ve just purchased several parts to convert my Hot Wire CNC foam cutter to this option. Keep checking back and I’ll have a new article and video up soon.
I haven’t covered every possible solution here but ones that I feel are within the reach of most hobbyist. If you know of a product that works well and is affordable then please let me know and I’ll add to the article.