Skip to content
My Account

CNC

CNC 3018 PRO: Build, Control and Program It

A complete guide to the CNC 3018 PRO: the parts, the build, a Raspberry Pi with CNCjs and a camera, a Fusion 360 job and the bits to choose.

  • Raspberry Pi
  • CNC
  • Archived
  • 7 min read
No ratings yet, be the first.

Archived project

The GitHub repository for this project is archived: it is read-only and no longer updated. What follows describes the project as it was, so check for a newer alternative before you build it.

The machine has not been used for a long time.

The CNC 3018 PRO is a small desktop CNC router. This guide follows the whole path: unpack the parts, build the machine, wire it, control it from a Raspberry Pi and prepare a job in Fusion 360. It was used to cut wood and thin aluminium.

The parts

The kit comes in bags and boxes. This is the overview of the parts, and how they fit the machine:

The machine with labels: stepper motor, spindle motor, control board with power supply, bits, worktable and frame
All parts of the kit laid out next to each other, with the number of screws
PartWhat it is
Bakelite platesThe side plates and the rails of the frame
Linear bearing holdersFive holders with a bearing, for the moving axes
Aluminium profilesTwo kinds, for the frame
Lead screws and rodsMove the axes and guide them
Stepper motorsOne for every axis
Aluminium tableA T-slot table for clamping the material
Z-axis carrierWith its stepper motor and the clamp for the spindle
Spindle motorWith a collet and a nut for the bits
ControllerA board with a fan in a transparent case
Cables and cable tiesFor the motors and the controller
HardwareScrews, T-nuts, springs, couplings and Allen keys

The parts one by one

Two bakelite side plates
Two long bakelite plates
Five grey holders with linear bearings
Two black aluminium profiles
Two black aluminium profiles of a different kind
Lead screws and smooth rods
Two stepper motors
The aluminium T-slot table
The Z-axis carrier with a stepper motor and the clamp for the spindle
The spindle motor with a collet and a nut
A metal bracket for a motor
The controller board with a fan in a transparent case
Coloured motor cables and cable ties
The bag with screws, T-nuts, springs, couplings and Allen keys

Build the machine

The steps below follow the photos of the build.

Step 1: the frame

Build the frame from the black profiles and fit the linear bearing holders on the rods of the Y axis.

The black frame with two rods and four bearing holders

Step 2: the lead screw and the table carriers

Fit the lead screw with its stepper motor and the nut in its holder, then the carriers for the table.

The frame with a lead screw, a stepper motor and the bearing holders
The brass nut on the lead screw in its grey holder
The frame seen from above with the stepper motor and the lead screw

Step 2D: the table

Fit the aluminium T-slot table on the carriers.

The aluminium table on the frame

Step 3: the side plates

Put the T-nuts in the bakelite plate and fix the plates to the frame as the uprights of the machine.

A bakelite plate with T-nuts
A bakelite plate on the frame next to the table

Step 5: the gantry with the Z axis

Fit the X-axis rods and lead screw with their motor, and the Z-axis carrier.

The machine with the uprights, the X axis and the Z-axis carrier

Step 6: the spindle motor

Put the spindle motor in the clamp of the Z axis.

The spindle motor in its holder on the Z axis

Wiring the controller

The controller sits in its transparent case on the side of the machine. Its connectors are marked X-MOTOR, Y-MOTOR and Z-MOTOR, and there is a red power connector.

The controller in its case with the connectors X-MOTOR, Y-MOTOR and Z-MOTOR

Plug in the motor cables, one to each axis, and route them along the frame.

The controller with the motor cables plugged in
The machine with all the motor cables connected and still loose
The cable of a stepper motor at the end of an axis

Tidy the wires

Bundle the loose cables with the cable ties, so they cannot catch in the moving parts.

A cable bundled with a cable tie on the side of the frame
The cables of the Z axis tied together
The tied cables at the stepper motor of the gantry

Control it from a Raspberry Pi

Instead of a laptop by the machine, a Raspberry Pi 3 B runs CNCjs, a web interface for CNC controllers that run Grbl, Marlin, Smoothieware or TinyG. You open it in a browser on any computer in the house.

Prepare the SD card

The screenshots show Raspberry Pi Imager 1.6.2:

  1. Choose Raspberry Pi OS Lite (32-bit), the version without a desktop, released on 7 May 2021 at the time.
  2. Choose the SD card as the storage.
  3. Open the advanced options, set the host name to cncserver, enable SSH with a password for the pi user, and set your WiFi and the time zone.
  4. Write the card.
Raspberry Pi Imager with Raspberry Pi OS Lite (32-bit) selected
The advanced options with the host name cncserver and SSH enabled
The advanced options with the WiFi settings and the time zone Europe/Amsterdam

Connect over SSH

Put the card in the Raspberry Pi and start it. After a minute you can log in from your computer:

ssh pi@cncserver.local

The first time, SSH asks you to trust the host. Type yes and then the password that you set.

Start CNCjs automatically

Install CNCjs as described in its own documentation. The service file below starts it at boot, and it expects the program at /usr/bin/cncjs. Save it as /etc/systemd/system/cncjs.service:

[Unit]
Description=A web-based interface for CNC milling controller running Grbl, Marlin, Smoothieware, or TinyG
Wants=network.target
Documentation=https://github.com/cncjs/cncjs

[Service]
Type=simple
User=pi
Group=pi
WorkingDirectory=/home/pi
Nice=5
ExecStart=/usr/bin/cncjs
# Use SIGINT to stop
KillSignal=SIGINT
# Auto restart on crash
Restart=on-failure
# Tag things in the log
SyslogIdentifier=cncjs

[Install]
WantedBy=multi-user.target

Then enable it and start it:

sudo systemctl enable cncjs
sudo systemctl start cncjs

A camera on the machine

A second service streams the Raspberry Pi camera with mjpg-streamer, so you can watch the job. It expects the program at /usr/local/bin/mjpg_streamer and uses the Raspberry Pi camera input:

[Unit]
Description=mjpg-streamer
Wants=network.target
Documentation=https://github.com/jacksonliam/mjpg-streamer

[Service]
Type=simple
User=pi
Group=pi
WorkingDirectory=/home/pi
Nice=5
ExecStart=/usr/local/bin/mjpg_streamer -i "input_raspicam.so"
# Use SIGINT to stop
KillSignal=SIGINT
# Auto restart on crash
Restart=on-failure
# Tag things in the log
SyslogIdentifier=mjpg_streamer

[Install]
WantedBy=multi-user.target

Both files are also in the gists of the author.

From model to G-code in Fusion 360

The repository has an example part, a round flange with holes, as a Fusion 360 file, Example.f3d. This is the path from the model to the G-code file, with the free personal version of Fusion 360.

1. Open the model

Choose File, Open and select Example.f3d. Then switch the workspace from Design to Manufacture, which shows the Milling tab.

The Open dialog of Fusion 360 with the file Example.f3d selected
The Manufacture workspace of Fusion 360 with the flange model

2. Create a setup

A setup describes the material and where the zero point of the machine is. Choose the orientation with “Select Z axis/plane and X axis”, and put the origin on the stock. In the example the stock is a box with an offset of 5 mm on the sides and 5 mm on top, which gives a block of 100 by 100 by 17 mm.

The setup dialog with the work coordinate system, where the Z axis has to be selected
The stock settings with a side offset of 5 mm and a top offset of 5 mm

3. Make the bit

Open the tool library and add a flat end mill. The bit in the example has these values:

PropertyValue
TypeFlat end mill
Number of flutes3
MaterialHSS
Diameter3.175 mm
Shaft diameter3.175 mm
Overall length39 mm
Flute length17 mm
The cutter tab of the tool dialog with a 3.175 mm flat end mill of three flutes

4. Pocket the flange

A 3D pocket removes the material around the part. The machining boundary is set to the silhouette of the model, and the coolant is disabled, since the machine has none. The speeds are low, for a small machine:

SettingValue
Spindle speed10000 rpm
Cutting feedrate100 mm/min
Plunge and ramp feedrate100 mm/min
CoolantDisabled
The feed and speed settings with a spindle speed of 10000 rpm and a cutting feedrate of 100 mm/min
The toolpath of the pocket drawn in blue over the flange

5. Cut out the outline with tabs

A 2D contour follows the outline of the part. Tabs keep the part attached to the stock until the end, so it cannot move while it is cut loose, and the contour goes down in steps:

SettingValue
Tab shapeRectangular
Tab width1.4 mm
Tab height0.35 mm
Tab distance11.2 mm, by distance
Maximum roughing stepdown1 mm
Finishing stepdown0.2 mm
The tab settings of the 2D contour: rectangular, 1.4 mm wide and 0.35 mm high
The multiple depths settings of the 2D contour with a maximum roughing stepdown of 1 mm

6. Post the G-code

Choose Grbl as the post processor, since the controller runs Grbl, the unit millimeters and a program number. Fusion writes an .nc file.

The NC program dialog with the Grbl post processor and the unit millimeters
The G-code file that Fusion 360 wrote, with a comment about the personal use limits

The comment in the file says that, in the personal use version, rapid moves are reduced to the feedrate of cutting, which can make a job take longer.

Choosing a bit

The shape of the bit decides what the cut looks like. These are the bits that are shown in the repository, each with a cut in wood.

Flat end mill and straight flute

A flat end mill cuts a pocket with a flat bottom. A straight flute bit has flutes that run straight along the bit. The slots in the photo have a clean, flat bottom.

A straight flute bit and a close-up of its cutting edge
Three slots cut in wood with a straight flute bit

Ball nose

A ball nose bit has a round tip. It leaves smooth curves, which suits shapes that are not flat.

A ball nose end mill
A smooth curved cut in wood made with a ball nose bit

Up cut and down cut

The spiral of the flutes decides where the chips go: a down cut bit forces the chips down, and an up cut bit forces them up. A down cut gives a cleaner top edge, and an up cut clears the chips out of the slot. The wood sample shows both.

A down cut and an up cut end mill, with arrows that show where the chips go
Two squares cut in wood, one with a down cut bit and one with an up cut bit

V-groove and engraving

A V-groove bit has a pointed tip. It cuts letters and fine lines, and the width of the line depends on how deep the tip goes.

A V-groove bit
Letters engraved in wood with a V-groove bit
A pointed engraving bit
The letter C engraved in wood

Surfacing

A surfacing bit is wide and flat. It makes the surface of the table or of the material level.

A wide surfacing bit
A surfacing bit levelling a board

Good to know

  • The machine was used on wood and thin aluminium.
  • The repository holds the images and the Fusion 360 example, Example.f3d, and is under the MIT licence.
  • Wear eye and ear protection and dust extraction when you cut, and never leave the machine alone while it runs.

The project is in the CNC-3018-PRO repository on GitHub.

Advertisement
All projects

More projects

Keep building.

Electronics, 3D printing and CNC builds, documented from the first idea to the last screw.

All projects