This article discusses the original CNC 3018 Pro router I bought from a seller on Amazon. The intent is not to provide a detailed review or instruction guide to this router, instead it is intended to be a starting point for future articles on the modifications I made to this router. Thus, it really only covers some key aspects relevant to my use of this router and, more importantly, some 3D CAD files I used as a starting point for designing future modifications.
It should be noted this is my first foray into CNC milling. I have no expertise in mechanical engineering. So conclusions detailed in this page are my early learning experiences and it would be wise to seek more expert knowledge in understanding what are the best practices.
For many years I had been debating whether I should get a CNC router or a 3D printer. In 2019 I took the plunge and bought both.
I had considered buying a CNC router primarily to:
- Create panels for cases to house my electronics projects.
- Try my hand at producing PCBs through milling.
- Manufacture small objects out of plastic or maybe aluminium.
After surveying the Internet I saw a lot of articles and Youtube videos on this router, including modifications that seem to show it could be made to route simple aluminium pieces. Thus it seemed to be a good option for dipping my toe into CNC without spending to much in case I did not pursue it further.
When my kit arrived, despite the instructions being pretty poor. I found it reasonably easy to assemble the router. However, the instructions lacked any reference to aligning and tramming the spindle, which I later found caused issues. Lubrication of the motion system was also not mentioned.
Included in the kit were:
- A cheap 775 spindle, rated at about 60W, using ER11 collets. This is a bit weak for CNC tasks.
- An Arduino style controller (Woodpecker) running GRBL.
- A simple controller for moving and homing the axis.
- A laptop PSU rated at 24V 5A.
- Miscellaneous collets, sample bits, cheap fixings.
The following shows images of the CNC router from various perspectives:
When I first used it I connected a laptop to send the GCODE to the router over USB using UGS. Whilst the spindle was not too noisy, the fan on the controller absolutely screamed. I would need to implement a new cooling solution to reduce that really irritating noise.
With my first experiments with the router I really enjoyed seeing the spindle move under remote command. One of my earliest projects was to create a spoilboard for the router. I really got a kick out of seeing the router create my design on MDF, which had previously only existed in my head. I knew I was hooked on CNC.
Whilst the router did what was advertised, on using it I soon found its limitations. I can see why CNC folks label it as a toy:
- There is plenty of play on the axis as it uses unsupported rails.
- It is almost impossible to do engravings with small end mills (e.g. <1 mm). They just snap if you so much as look at them. I suspect a big part of this is slop in the axis or spindle runout.
- A poor finish to workpieces, partly due to the spindle not being trammed, but also, I suspect, the play in the axis.
- The use of the extrusions leaves many open crevices that just collect dust from the cutting operation.
On the good side, what is important for CNC work is probably only learned through experience. I now have some inklings as to what characteristics I need from a CNC router. This router gives me a chance to play with the system and get some of that experience. It also provides a platform to try out ideas on improving the router to fix some of its more glaring weaknesses. As a small and light router, it might still have a role to play in PCB milling. This application may not be so demanding, and does not need a large work area. I do not have space in my house to have a permanent workshop established, with metres of concrete base for a £60,000 router that seems to be the minimum specification the “CNC Experts” on the Internet state are the minimum requirements to mill anything.
The router uses relatively cheap, soft materials, and unsupported linear rails. I made some measurements with a digital indicator to determine how much give the router had on the various axis.
I moved the router table towards the back of the router frame so that the front linear rail bearing were about halfway along the Y-axis linear rail. This should be the point where there is the most deflection on the unsupported Y-axis. I then placed a 5.5 kg weight on the front centre of the table and measured the vertical displacement this induced.
The measured value was 0.16 mm.
Deflection of the table on the Z axis does not seem to be too big an issue, despite the Y-axis rails being unsupported.
I moved the Z carriage to the centre of the X-axis. This should be the point where there is the most deflection on the X-axis axis. I also located the spindle to be half-way up the Z-axis rails where it is least supported on this axis. I then placed a 5.5 kg weight on top of the spindle and measured the vertical displacement this induced on the spindle holder (it was too awkward to locate the measurement probe to touch the spindle collet).
The measured value was 1.16 mm.
The unsupported X-axis rails seem to be a big issue here. With the leverage of the spindle, there is a lot of deflection. For any decent milling results of anything metal a more robust x-axis is going to be required.
With the Z carriage in the middle of the X-axis and Z-axis, I tried to induce some deflection on the spindle end in the X direction. I could not see how to place a measured force in this test. Instead I just pushed and pulled on the tip of an end mill with a finger. I pushed/pulled as hard as I felt I could do without breaking the mill (or my finger).
I could get the spindle shaft to easily deflect 0.25 mm to 0.35 mm.
The Z carriage has a lot of play. Something more substantial is really needed here.
With the Z carriage in the middle of the X-axis and Z-axis, I tried to induce some deflection on the spindle end in the Y direction. I could not see how to place a measured force in this test. Instead I just pushed and pulled on the tip of an end mill with a finger. I pushed/pulled as hard as I felt I could do without breaking the mill (or my finger).
I could get the spindle shaft to deflect:
- Forward: up to 0.15 mm.
- Backward: up to 0.25 mm.
The Z carriage has a lot of play. Something more substantial is really needed here.
I put a 3.175 mm end mill into the same sized collet on the spindle. I placed my measurement tool to rest against the smooth part of the end mill, where it enters the collet. Then, rotating the spindle by hand, I measured what the variance in the end mill position was around the rotating axis.
The measured values varied between -0.02 mm and +0.06 mm. This means the runout variation is in the order of 0.08 mm.
I actually expected it would be more than this. Still possibly enough to break very small (< 0.5 mm) mills.
My CNC router came with a Woodpecker CAMXTOOL v3.4 controller board. Unfortunately, for some reason, the manual for this board does not seem to be provided on the Internet by the manufacturers, although it can be found elsewhere.
The controller is housed in a plastic case intended to be mounted on the back of the X gantry. Be careful tightening the mounting screws, the plastic in the case cracks easily.
Note the little 30 cm diameter fan used to cool the drivers. It absolutely screams! Swapping this for a larger, slower, fan is going to be essential for your sanity. This fan is driven by the controller board using a 5V DC fan interface.
This PCB board, without the heatsink for the drivers, is shown below. Note how much dust from MDF milling has sneaked in here. The case is not very good.
It can be seen that this board uses the A4988 driver chip. This driver is rated at 2A, although I would feel nervous with driving more than 1.5A through it, especially with that tiny cooling fan. Also, no thermal compound was present between the drivers and the heatsink.
Below each driver is a preset potentiometer (labelled “X”, “Y” and “Z”). This sets the driver reference voltage (Vref), which in turn controls the maximum stepper motor drive current (Imax). On this board the driver measures the stepper motor current with a 0.1Ω resistor (value “R100”). The relationship between Vref and the maximum stepper motor driver current (Imax) is given by the following equation:
Imax = Vref / 0.8Ω
Vref can be measured using a voltmeter touching the potentiometer adjuster and a ground on the bottom of the limit switch connector. On my board I measured:
|X||0.63 V||0.8 A|
|Y||0.64 V||0.8 A|
|Z||0.64 V||0.8 A|
My board is loaded with GRBL version 1.1f:
It is running with the following settings:
$0=10 (step pulse, usec) $1=25 (step idle delay, msec) $2=0 (step port invert mask:00000000) $3=2 (dir port invert mask:00000010) $4=0 (step enable invert, bool) $5=0 (limit pins invert, bool) $6=0 (probe pin invert, bool) $10=1 (status report mask:00000001) $11=0.010 (junction deviation, mm) $12=0.002 (arc tolerance, mm) $13=0 (report inches, bool) $20=0 (soft limits, bool) $21=0 (hard limits, bool) $22=0 (homing cycle, bool) $23=1 (homing dir invert mask:00000001) $24=25.000 (homing feed, mm/min) $25=500.000 (homing seek, mm/min) $26=250 (homing debounce, msec) $27=1.000 (homing pull-off, mm) $30=8500 (max spindle speed, RPM) $31=4000 (min spindle speed, RPM) $32=0 (laser mode, bool) $100=800.000 (x, step/mm) $101=800.000 (y, step/mm) $102=800.000 (z, step/mm) $110=1000.000 (x max rate, mm/min) $111=1000.000 (y max rate, mm/min) $112=600.000 (z max rate, mm/min) $120=30.000 (x accel, mm/sec^2) $121=30.000 (y accel, mm/sec^2) $122=30.000 (z accel, mm/sec^2) $130=200.000 (x max travel, mm) $131=200.000 (y max travel, mm) $132=200.000 (z max travel, mm)
As a starting point for creating modifications to this router I created a Fusion360 CAD model of the original router. This model does not necessarily model every detail of the router, it focusses on aspects important for creating future modifications.
The model does include support for the movement over the X, Y and Z axis.
After playing with the router a bit, a number of updates come to mind that may significantly improve the usefulness of this router:
- Add limit switches and an emergency stop button.
- House the controller in a box with a larger, quieter, fan.
- Upgrade the spindle.
- Replace the x-axis linear rails with supported rails such as MGN15.
However, it is also probably not a good idea to throw too much money at this router. I’ll use it as a learning experience and replace it with something that is better in its fundamentals.
I have looked at better Chinese CNC routers, such as CNC6040. Whilst these look much stronger, they still have major weaknesses such as often using unsupported linear rails. Also, the electronics on these look horrific, often based on parallel port controller driven by a PC running a dodgy copy of MACH3. I also query the safety of these electronics.
The printnc-mini looks like a much better option, and appears within my technical capability.