I certainly could be wrong but I think that machine connects to the computer with a parallel port rather than a USB, especially if using Mach3. This can be a problem with computers less than (maybe?) 10 years old because they removed that port quite a while ago. There are work arounds if that's the case though.
Cogsy, I am not sure if I have understood your post correctly. At the risk of repeating things you or others already know, here's a summary of what I think are the options under discussion. Note the caveat - what I
think, but anyone, please don't hesitate to correct me!
Here's what I think is being discussed as the 3020 style mill (probably better described as a mini CNC router):
L&Z CNC Router Engraver-3020 Wood Milling Machine, Mac OS/Windows Supported, 3 Axis XYZ Carve, with USB Flash Drive(instruction and software) - - Amazon.com (this is just the first one that came up - there are a zillion variations). These all seem to be built around an Arduino Uno or equivalent, running GRBL. To the best of my knowledge, these are all accessed by USB, not by parallel port. It is also important to note that the computer connected to this machine only serves to send gcode; all of the real-time motion control is handled by GRBL on the Arduino. Here is the flow:
PC - Windows, Mac, Linux - generates the gcode using CAM software, sends the gcode to the Arduino via USB
||
Arduino, running the GRBL software, which accepts gcode and generates real-time motion control; sends / receives digital i/o to control the stepper motors, limit switches, etc.
||
Stepper controller board (usually a single "shield" that plugs directly to the Arduino, or may be connected via cables; contains 3 or more A4988 or DVR8825 stepper drivers, either directly on the board or as "Polulo" style plug in modules; allows up to ~1.5 amps per stepper motor - typically best for NEMA 17 motors. Alternately, it may allow connection to TB6600 or other external stepper drivers, allowing ~4 amps per stepper, suitable for many NEMA 23 motors.
||
CNC machine - stepper motors, switches, etc.
By contrast, the Mach3 type approach dates back to the days when cheap and standardized prepackaged microcontrollers such as the Arduino were not available, and instead a PC was used as the real-time motion controller. To get digital i/o from the PC, the then-ubiquitous parallel port was the most convenient option. Thus, the hardware was set up accordingly:
PC - Windows - runs the CAM program to generate the gcode, translates the gcode into real-time motion control, sends / receives the digital i/o via the parallel port to control the stepper motors, limit switches, etc.
||
Breakout board - buffers and divides the parallel port signals into separate connectors for each stepper motor.
||
Three or more TB6600 or Gecko or other stepper motor drivers
||
CNC machine - stepper motors, switches, etc.
You could change the PC above to a Linux box and run LinuxCNC - I think otherwise the components / flow are similar.
With the dearth of parallel ports, there is the need for either an additional interface between the PC and the breakout board (to convert ethernet or USB to "parallel port"), or a upgraded breakout board that has the USB/ethernet-to-parallel built in.
Note the oddity: even now, when you search for Mach3 hardware, the majority of what you find will STILL talk about a parallel breakout board, even when USB or ethernet are built in.
Another variation is that you can get the Arduino and the stepper drivers combined in one compact board. One way or another, the Arduino/GRBL approach, especially for a smaller machine that can run on NEMA 17 motors, will have much more compact electronics.
Again, let me hasten to say that the above represents my semi-informed understanding, but I stand more than ready to be corrected!