Originally, Mach-series software only worked with the parallel port (via the parallel port driver), which was a standard port on every PC. Technologies have advanced over time, and not only is the parallel port becoming obsolete, but the Windows codebase has changed to the point where it is technically impossible for the parallel port driver to work on newer operating systems. An external motion device is a piece of hardware that is a replacement for the parallel port. It enables a PC running Mach3/Mach4 to control outputs and read inputs. They typically communicate with the PC via an Ethernet or USB connection (but are not limited to those two means of communication). In order to control a machine using an external motion device, the developer of the hardware must write a plugin for that specific device, so no standard USB-to-parallel port adapters will work. Mach3 and Mach4 use different plugin formats, so be sure the motion controller you are considering has a plugin available for the software you will be using.