What is a CNC?
The abbreviation CNC stands for computer numerical control, and refers specifically to a computer “controller” that reads G-code instructions and drives a machine tool, a powered mechanical device typically used to fabricate components by the selective removal of material.
In simple words, a CNC is a machine which is controlled by a computer, and used to fabricate 3D objects.
This page will describe the process of building a CNC machine, from the design stage, the required materials and the process itself.
Still confused? Here’s a shot movie showing a CNC fabricating a printed electronic circuit board:
After seeing the movie, you must have understood how useful that kind of machine is for printing electronic circuit boards or manufacturing robot parts. This kind of machine helped tremendously cut the prototype manufacturing costs, and thus very useful for me. The only problem is – such a machine costs thousands of dollars.
But as I say – “If there’s a will there’s a way”. So I decided to build such a machine myself.
This page describes the building process, beginning with the design, the required parts list, the needed electronics, how to connect everything to the computer and how to operate the machine.
Parts List
Aluminum U Channels, 20cm x 20cm

1/4″ Threaded Rods:

Long 1/4″ nuts:

Bearings (different sizes):

Perspex (Acrylic) boards:

Choosing the stepper motors
While choosing the motors one should take into account the physical size of the machine, the weight each axis will carry. Another important criteria is the precision of the motors – the number of degrees it spins at each step. A few more parameters are the physical size of the motor (NEMA23, NEMA32..) and it’s power rating.
I have chose Shinano Kenshi 1.8 degrees\step, 7.3 volts 0.95 ampere, NEMA23 stepper motors. To achieve more precision I run the motors in half-stepping mode. The motor is controller using my CNC Stepper Motor Controller.

CNC Controller
I built an opto-isolated 3 Axis CNC Controller which supports home and limit switches for all the axes.
More info at the CNC Controller Page
CNC Software – Linux EMC

The software I’m using is EMC – Linux CNC. It has many advantages – it’s an open source program and thus a free one, it supports various kinds of hardware and configurations and it’s very easy to use. Since EMC is running on a special version of linux – Real Time Linux, it is also very reliable and never misses a step.
EMC Is working with G-Code.
Creating The Machine Frame
The machine’s frame is created from metal bars, soldered together and painted gray:

Threaded rod’s bearing mounts:
In order to achieve high precision, I used bearings to fix the threaded rod to the frame:


The result is impressive – the threaded rod is fixed to the frame, and it moves very smoothly, as you can see in the video:
Motor Mounts:
X Axis motor mount:

Y Axis motor mount:

Z Axis motor mount:

Using bearings to tighten everything:

Motor shaft coupler
This is the first coupler I created. It’s made of a long nut, in which I drilled two small holes. Its performance was medium – a coupling was achieved, but I could notice some jitter.

So I replaced it and bought aluminum and rubber professional couplers:

X and Y Axes
Both X and Y Axes, with the motor mounts. Click on the picture to enlarge.
Home and Limit switches
In order to support automatic homing of the machine, and have better safety, I installed home and limit switched for all the axes. You can see the home and limit switches for the Y axis in the pictures below.

Limit switch:

Z Axis:
The dremel mount is made of 15mm x 15mm perspex. It works out very well – there is no vibration even when the Dremel is spinning in 33,000 rpm!

The Dremel head with the CNC milling bit:

Bearing support for the Z Axis:

The finished machine!


Side View

CNC in Action – CNC Examples
The CNC Machine is now complete! The results are very good – I get 0.4mm precision (I simply can’t measure if it’s more precise than that).
An example of milling wood:
An example of PCB Isolation Routing, here is the PCB layout:

A picture taken while the printed circuit board was milled:

A video demonstrating the CNC machine milling a printed circuit board (PCB) using PCB Isolation routing. The machine is working at it’s lowest speed in this example, in reality it can be configured to run much faster.
The result:

As you can see the machine is able to create PCB quite nicely.
In order to *really* test the machine, I tried to engrave the following scheme of a horse – which is 2mm x 2mm only!

The result amazed me (the photo is enlarged so you can see the detail):

Links
- CNC, G-Code, Computer Aided Design and Computer Aided Manufacturing (Wikipedia)
- CNC Information
CNC Information is the Premier Information Site about all aspects of CNC. CNC forums, CNC blog and CNC Member Profiles.






[...] Amazon.co.uk: Sports …Step-By-Step: Tune Up Your Windows XP Machine (for Free …Home-Made DIY CNC Machine using Step Motors, Dremel, and …Step Feeders, Robotics Integration, Machine Tending Automation …Elliptical Machine and Step [...]
[...] Machine (UltraAutomatic Machine Does it All)Frequently Asked Questions < Products < NuStepHome-Made DIY CNC Machine using Step Motors, Dremel, and …Gloss-it’s 16oz One Step Machine Glosshexgon socket screw, double step machine screw – [...]
in 1983 my wife and I founded a company concentrating on a pc based CNC prototyping machine. The company (OZO Diversified Automation) used a simple I/O card, machine language software to contol the machine and BASIC as an interface between the operator and the machine language subroutine. You have a nice idea here but the only thing of marketable value is your step motor controller and software. In our first product we made some of the same mistakes you have made. PCB material is made in 3′x4′ sheets therefore the minimum format should be 12″x18″. Don’t use the channel aluminum crap for bearings and lose the threaded rod. At a minimum the company 8020 makes “industrial erector set components cut to size with an acceptable bearing system that you can incorporate in your design.Dremel tool bearings and brushes can be purchased from the company in quantity. Unless Dremel has gotten considerably better in recent years, they need servicing at about 60 hours. We developed our own spindle (80k rpm) which had a service interval that exceeded 4000hrs. Actual lead screw is available in 6′ lengths. You do need a special tap to make the nut. A good alternative is available. For a low cost, reliable cnc machine contact Western Belting in Denver Colorado. They supply low cost linear bearings, lead screws that are low friction and accurate as a rolled ball screw, supply any diametric match in couplers as well as limit switches. The last time I checked Greg Bussy was in charge of sales. If you are interested in something more than a toy consider using aluminum tooling plate over plex or polycarbonate. Especially if your intent is a serious CNC machine, conversion of a manual machine tool to CNC and definately if you are looking at a CNC welder unless you enjoy watching your plastic machine go up in flames. You have a good start here, consider making either a step driver that accepts 5phase 3 stack motors or a TTL signal version that would interface with something like an (Vextra) Oriental Motor 5 phase motor/driver for greater precision, power and considerably smoother ramping. Just a side note, out first product ran on an Apple II, two years before IBM came in with their piece of crap PC. If anybody is intersted in using the Lirtex CNC controller and would like some help with either retrofitting a machine tool or a special design of a CNC machine, I am in the Denver CO phone book. I have over 20 years of experience designing some of the most sophisticated CNC robotics in the world.
cut the guy some slack, for a starter hes done fairly well. Besides this is something that a collage student or garage enginerd could within reason afford to build. infact i am going to be building such a unit with different materials in the very near future…
hiya umm im planning to start building one although im struggling to make out from the information you have provided how u control the x and y axis they seem to control a peice of acrylic and move that but in the pcb video the dremmel is moving not the part underneath how are they joined together could you possibly put a video on showing how the x and y axis work exactly the picture doesnt really show. thx
welcome sir,
I can cnc home make full software , pic, circuit schematic , router solution
all projects kindly send.
Looks like you don’t have great accuracy. Make sure there is no backlash in the leadscrews.
Overall, the result is very well.
I started building a cnc router.
very nice job done by you..really appreciate but i had same type of project with the use of Stepper Motor so i need assistance in the case of coupling so if you feel ok than send me design of shaft coupler of aluminum and rubber professional couplers. thank you
This is a very good job. I learnt a lot from your website. I plan to build one.
Lin
Another comment for your Y axes motor mounting:
I would mount the motor a little bit closer to the table. I guess the table might have similar weight as the motor, if the motor is too out, the inside edge of the Y table may lift (or try to lift), that may decrease the accuarcy. It is just my guess, I may be wrong.
Lin
Very good job. The accuracy might be better than 0.4mm.
The stepper may have 100 steps per rev, the 1/4″ screw thread moves about 1.25mm per rev. That means each step, the table moves 1.25/100 = 0.0125 mm in theory. Due to some other reason, it may not be able to achieve 0.0125mm / pulse, but I would say, it should be better than 0.4mm.
Are the two bearings on the screw rod really useful to improve the accuracy? This is the majory differece from Tom’s version. I would not use these two bearings, if the screw rod is not parallel to the rail, it could push the table away from the rail, therefore may reduce the accuracy (Correct me if I am wrong).
Lin
Nice CNC machine. I like the improvements on the Instructables version. Check out the new CNC startup on Kickstarter http://www.kickstarter.com/projects/421256045/diy-desktop-cnc-machine?ref=spotlight
עבודה יפה, כל הכבוד
This is nicely done, but its the same design as Tom’s one on instructables.com . He just used pipes but more detailed circuit boards and design details are to be found on that site.
http://www.instructables.com/id/Easy-to-Build-Desk-Top-3-Axis-CNC-Milling-Machine/
Great device. I am sure you have inspired hundreds to thousands of individuals to make something similar.
Hi,
Nice to see your machine working,after visiting your site I build myself one
in MDF board and use EMC but I have no idea how to mill a pcb,I never used
Eagle,Is it really necessary to use Eagle or do you know another way to mill pcb’s or another software more easy to learn.
Regards
THANKS
Mike
Fantastic results from an amazing project! You don’t have the full drawings to reproduce this device do you?
[...] all the possibles designs, I’ve chosen a 3 axes Dremel based model. This would be cheap enough, simple enough, capable enough and [...]
Hi,
i don’t have words for such brillient work. Can you send me detail info about it. i want to make it for my project of final year graduation. please it is urgent. or you can sell it to me reply as early as possible
Thank you.
Prashant
India.
Won’t your linear sliding setup cause tons of friction? I mean, you have the aluminum U channels sliding against each other as well as against the plexiglass. Would affixing bearings to the U channels some how, to make the axis slide on the bearings work?
it would unless he used tons of grease…. for my unit i chose to use cabinet drawer slides as they provided smooth single axis motion, that and they where under $6 US…. most home improvement stores will have them as well as most of the other stuff needed.
Hi,
I am from Turkey. May I buy your CNC the finished X,Y,Z Axis machine? or where can I find? Furthermore how many price. Its very importand for me could you please send to Turkey?
Best regards
Great, thank you very much for sharing your experience.
do you have any electrical planes?
thank you
matej
Electrical Plane here:
http://en.wikipedia.org/wiki/Electric_aircraft
Brilliant work.
Nice machine with good constructional details for others to follow. Keep up the good work.
(I have just tried isolation routing for a simple pcb and It sure beats ferric chloride for one off’s).
Regarding SMT PCBs – Is the resolution of this rather wonderful machine capable of routing SMT type devices like a SOIC or a QFP?
What type of bit is being used?
Would this or could this cut holes in Computer cases?
yes if you write the G-code to what you want it should work quite well.
excellent,
very useful, high technology.
what kind of servo that we must use when using EMC software?
The endmill for PCB is not the right one. You should use the right engraving bit which is 30/45/60 degree V cutter in order to mill Copper clad layer in pcb…
You can buy “0.15 universal microcutter” from the site of “LPKF” which is a German CNC company or The spade cutter of “Drewtronics”
Sweet!
I know what I’m making myself for next Christmas!
How can I Buy?
Amazing, i want ask to you how cant i buy this machine,and price? im living in indonesia,and i need this machine for my work. Please give me information in my email and thanks.
I’m trying to make something like that. Your machine is fantastic. Gave-me more ideas. Thanks.
Very good EMC-MC
Great work!
Looks like a fine job, now I got to make me one!