CNC3020T only comes with a configuration for Mach3, a Windows CNC controller software I’m not really interested in. Additionally, for some weird reason, its control block requires you to adjust spindle speed manually with a potentiometer.

Fortunately, all of that can be fixed; moreover, the control block is much more powerful than it seems.

The stepper board looks like this:

The connectors J7, J8, J9 correspond to axes X, Y, Z in that order.

IC part numbers and their functions:

Component Part # Function
U5 AP1501 buck converter
U6-U8 TB6560AHQ stepping motor driver
U10, U11, U13 74HC140 hex inverting Schmitt trigger
U16-U21 6N137 optocoupler
U25, U29-U32 EL817 optocoupler
black box below B0505LS isolating DC-DC converter

As it can be seen, the board features quite a bit of unused functionality—it has unpopulated connectors for limit switches and spindle PWM, direction and cooling pump control. (I’ve soldered pinheads to them already.)

I didn’t trace the board completely, but it is built out of identical blocks. I’ve drawn its input and output circuits (GNDIO and VCCIO are provided by the isolating DC-DC converter):

Input Output

I’ve also mapped board functions to LPT pins:

Pin # Direction Function
2 OUT X Step
3 OUT X Direction
4 OUT Y Step
5 OUT Y Direction
6 OUT Z Step
7 OUT Z Direction
8 OUT Coolant Pump
9 OUT Spindle Direction
10 IN Z Limit
11 IN Y Limit
12 IN X Limit
13 IN ESTOP
15 IN Probe
17 OUT Spindle PWM

(“Coolant Pump” is marked on board as CP+/CP−, “Spindle Direction” is DIR+/DIR−.)

Miscellaneous machine parameters, gleaned from the attached “documentation” (a set of Mach3 screenshots in very poor resolution black&white):

Parameter Value
Step Time/Space 3000 ns
Direction Setup/Hold 1000 ns
Steps per revolution 400
Driver microstepping 2
Leadscrew pitch 2 mm/rev
Max. velocity X/Y 33.3 mm/s
Max. acceleration X/Y 200 mm/s²
Max. velocity Z 11.7 mm/s
Max. acceleration Z 100 mm/s²
Table travel X 0..200 mm
Table travel Y 0..300 mm
Table travel Z −50..0mm

All these parameters can be found in 3020T.stepconf, the source file for EMC2’s configuration wizard.

Now the funny thing is, the stepper control board has a PWM output, and the spindle control board has a PWM input:

Pin 1 (rectangular) is positive, pin 2 is negative.

It would seem that obtaining software spindle speed control is as simple as switching the SW1 switch to position 2 (jumper adjacent to PWM) and connecting the boards with a pair of wires. And it totally works!

I have no idea why didn’t they provide it out of the box.