Project tutorial
DIY Universal CNC Machine

DIY Universal CNC Machine © GPL3+

Make a fully-functioning CNC machine that can accept different tools for less than $150 by using parts from DFRobot and Banggood.

  • 22,909 views
  • 8 comments
  • 83 respects

Components and supplies

Necessary tools and machines

3drag
3D Printer (generic)
09507 01
Soldering iron (generic)

Apps and online services

About this project

Purpose

As a serious maker, I have several CNC machines, including two 3D printers and a CNC router. But what if I wanted something else, like a laser engraver or a PCB milling machine? So I set off to do just that: build an inexpensive CNC machine that could have many different attachments, all while controlled through a simple interface of G-code.

Demonstration

Design

I started by thinking of a free-wheeled machine that could have an infinite Y-traverse, but it proved to be too cumbersome and inaccurate.

So I chose to use V-slotted rails with wheels instead. I then went on Fusion and designed several parts, including the entire X and Z axis parts.

Making the Bed and Y Axis

The bed (Y axis) is comprised of two 500mm or 800mm V-slot rails arranged in parallel. There are four plastic pieces that hold two wheels each, allowing for easy travel of the bed along the rails. I also ran a timing belt across the Y axis under the bed, so that when the Y axis stepper rotates the belt moves.

Making the X Axis

The X axis is comprised of a single rail that holds a 3D-printed piece with four wheels. The timing belt slots into the sides of the plastic piece that pulls it either direction.

Making the Z Axis

The Z axis is based on a pulley system, so that when the stepper rotates the Z block can get pulled or lowered.

Electronics

The electronics are fairly straightforward. There is an Arduino Uno for the logic, three DRV8825s for the stepper motor drivers, an Arduino GRBL CNC shield, and three limit switches for homing. I simply plugged in the stepper drivers and adjusted the current limit potentiometers to match the 12V 6A power supply. Then I soldered the limit switches to the shield, with COM going to GND and NO (Normally Open) going to the corresponding pins. Do note that the Z axis limit pin is no longer D11, but is instead D12.

Software

I flashed the GRBL firmware to the Uno by using the example sketch and Arduino IDE. Then I downloaded the Universal G-Code Sender here: https://github.com/winder/Universal-G-Code-Sender. It lets users easily send commands and G-code files to their CNC Machines.

Usage

To test it I started by calibrating the machine. By default, there are 200 steps/mm, but those differ. So simply move the machine 5mm, then multiply five by 200, and then divide that number by the actual distance the machine moved, and change the settings accordingly. So If it took 161 steps to move 1mm on the X axis, set $100=161.000. Then use Fusion 360 or Inkscape to design and generate toolpaths to cut, engrave, or draw whatever you want.

Banggood.com Parts:

100ML Plastic Disposable Sterile Syringe -- https://goo.gl/vHxWKm

800mm Length 2020 T-Slot Aluminum Profiles Extrusion Frame-- https://goo.gl/g8ns5U

TEVO® 5Pcs One Pack 3D Printer Part POM Material Big Pulley Wheel -- https://goo.gl/DxMczs

4Pcs 5mm x 8mm Aluminum Flexible Shaft -- https://goo.gl/BfpCXR

WPL WPLB-1 Wheel Complete 4PCS RC Crawler Car Parts -- https://goo.gl/vyWVxt

Wholesale Arduino SCM & DIY Kits -- https://goo.gl/DG4gVv

Code

Custom parts and enclosures

Thingiverse Repository

Schematics

Shield Wiring
Dsc 3417 bwtycotmty

Comments

Similar projects you might like

CNC Part Picking Machine

Project tutorial by Arduino “having11” Guy

  • 5,271 views
  • 1 comment
  • 10 respects

DIY 3-Axis CNC VMC

Project tutorial by Amit Nandi (BigWiz)

  • 12,163 views
  • 9 comments
  • 46 respects

Triple CNC Machine

Project tutorial by TheTNR

  • 9,722 views
  • 29 comments
  • 80 respects

2-in-1 CNC Router Machine with Laser Engraver

Project showcase by Arnab Kumar Das

  • 2,452 views
  • 1 comment
  • 10 respects

CNC Machine

Project tutorial by Manan Thareja

  • 9,200 views
  • 5 comments
  • 23 respects

Prototype of Arduino Uno CNC Machine

Project showcase by Sistem Komputer STMIK-AUB Surakarta

  • 5,902 views
  • 5 comments
  • 35 respects
Add projectSign up / Login