Setting Up an LY Group CNC 3020 With Mach3

I purchased a 3020 CNC from a company called LY Group in China. I also ordered the 4th rotary axis and a 1.5kW water-cooled spindle with it. With shipping and import duties it came to about $1400 USD.

I think these machines get a bad rap on the internet for being cheaply made. In contrast to my 3018 CNC, the 3020 has solid stainless steel parts, great anti-backlash ballscrews and nuts, and other quality components.

The manufacturers claim 0.03mm accuracy. They sell machines up to the 90x60 range and I feel like this 30x20 machine will have tighter resonant frequencies than its larger brothers because of its smaller size and water-cooled spindle. The gantry is also slightly larger than 30x20 and has extra room on its sides for clamping. Overall it has a very solid functional feel but without the branding, polish and finish that Western CNC kit makers tend to put on their parts.

This unit has the USB control board inside the control box with the VFD and stepper controllers. My controller PC is an older AMD Phenom 6-core and doesn’t have a parallel port. I believe the device is a BL-UsbMach control board, version 2.2. I got this by examining the board and comparing with internet photos, but also later on from the BL-UsbMach plugin driver itself (see below.)

In time I can see myself replacing the USB control board and pport control board (which really just hosts the stepper drivers and probe pins). I have a vague idea of implementing a controller based on the Raspberry Pi 4, but that will be a project for another summer.

The sales associate from LY Group was very polite and helpful. He sent me links with 7 files:

installation instructions.txt
LYCNC-Mach3-manual.pdf
Mach1Lic.dat
Mach3Mill.xml
Mach3Version3.043.066.exe
ShuttlePro.dll
UsbMach-V3.dll

The manual was also specific to the parallel port version and offers pin/port assignments for Mach3, but these aren’t entered manually as the plugin is doing most of the control.

I also didn’t use the version of Mach3 (3.043.066) that the vendor provided. Instead I downloaded the latest version.

The instructions were mostly in Chinese and this is not a language I understand, but I was able to get things working by copying to the following folders:

Mach1Lic.dat -> C:\Mach3
Mach3Mill.xml -> C:\Mach3
UsbMach-V3.dll -> C:\Mach3\Plugins
ShuttlePro.dll -> C:\Mach3\Plugins

In retrospect it seems trivial to put them in these locations, but as a Mach3 newbie I had to spend a couple of hours sorting through forum posts to get here:

When you start Mach3 it will ask you if you want to use the BL-UsbMach driver (2.2 in my case). This channels my device rather than the parallel port.

The plugin options are really limited – basically you can choose your sampling rate. I left mine at 65khz.

One flaw of the driver is that limit overrides don’t seem to work. Once an axis hits a limit switch, it seems to put the entire machine in an E-stop that doesn’t exit until you back the machine off manually. There doesn’t seem to be a way to back it off electronically. I use the axis knobs to manually full-step the axis away from the switch. This means that referencing is not very precise. I’d like to improve on this later with some code. It seems like a pushbutton homing procedure with back-offs would be quite useful.

It’s ready to start making parts. I just need to read a little more of the Mach3 user’s manual before I feel comfortable setting fixtures and making a run.