Introduction: Build a Cheap Handcrafted CNC Mill

Picture of Build a Cheap Handcrafted CNC Mill

Ever since I knew what a CNC was, I've dreamed of having one. As a kid, my parents didn't take it seriously. They said it was too impractical to buy one, specially for my age. CNC and 3D printing services in our country were absent at that time. I was very eager of building a DIY version so dreamed big and kept on searching online for designs. Luckily instructables had tons of CNC tutorials although none were made completely by hand. Most CNC builds were made by CNC machines. It's very ironic on how you need a CNC to build a CNC.


Due to the limitations of what I had at that time, I was forced to improvise and use common materials found in local malls to build a homebrew version by hand. I've built this for 3 days, day and night, a rough estimate of 34 man hours.

It never really ran with an uploaded g-code but I was able to test it by cutting straight lines of acrylic with my Black & Decker RTX rotary tool. Sadly, I'm discontinuing this project since we (my friend and I) decided to build a cheap 3D printed version using his 3D printer. I'm getting mine soon so stay tuned with more 3D printed projects. I'll give this to my friend so it's up to him if he wants to continue updating this tutorial.


***Please bare with the dull photos, they were taken with my phone. I really had no intention of documenting this, but after seeing my photo roll, I've realized it's enough to make an instructable. Cheers! :))

Step 1: Dream, Research, Doodle and Layout

Picture of Dream, Research, Doodle and Layout

Do your research on DIY CNC builds. You can find a lot here in instructables ( Once you've decided on your design, doodle it.

Step 2: Gather the Materials

Picture of Gather the Materials


- L298N

- Arduino Uno/ Mega

- Stepper motors ($3 Alexan)

- Switching Power Supply


- 4x8ft MDF Wood

- 14" Cabinet Sliders (4x)

- Plastic Project Enlosure


- Leatherman Multitool

- Electric Drill

- Rotary Tool

- Metal File

- Jigsaw

Step 3: Mark Your Cutouts

Picture of Mark Your Cutouts

Time to put your drawings to life! Buy a 4x8ft (1/2" thick) MDF sheet from your local lumber yard then use a ruler and marker for marking the measurements.

Step 4: Let's Cut Some Wood! (for Main Frame)

Picture of Let's Cut Some Wood! (for Main Frame)

Too lazy to use a handsaw? Use a jigsaw! :D Be sure to cut the MDF as straight as possible. Crooked cuts could result to having a poorer performance of your CNC.

Step 5: The Outcome

Picture of The Outcome

Judging by the result, I could say I'm quite satisfied with I had cut.

Step 6: Vacuum the Dust

Picture of Vacuum the Dust

Remember always keep your work area clean! :D

Step 7: Mount Y-Axis Sliders

Picture of Mount Y-Axis Sliders

You know how this works, mount those cabinet sliders the same way how you mount them to your cabinets.

Step 8: Add Some Reinforcement

Picture of Add Some Reinforcement

This is was included in my original plan. An extra bar of wood was added perpendicularly to the topmost bar of wood. This is done to reduce shaking once the CNC starts milling and to keep both sliders moving at the same time.

Step 9: Plane the Surface & Edges

Picture of Plane the Surface & Edges

Be sure to plane your frame to prevent the other moving parts from touching the bumpy surface. Less friction = more efficiency!

Step 10: Feet Suspenders

Picture of Feet Suspenders

This is where I had to improvise. I used two square blocks of MDF from my junk to suspend my CNC from the ground. I did this to give way for the screw mover and give a gap between the stepper motor and the ground.

Step 11: Mounting the Y-Axis Stepper Motor

Picture of Mounting the Y-Axis Stepper Motor

In this step, I sawed off a small portion of the CNC's uppermost base. This is where the stepper motor should go. What's with the superglue? I used the superglue to reinforce the mounting holes for the stepper. Why? MDF is soft, a few turns and the wood either splits of turns threadless.

Step 12: Trim the Y-Axis Screw Mover

Picture of Trim the Y-Axis Screw Mover

Get you very long bolt/ screw, then file/ grind the thread of the

Step 13: Connect Y-Axis Screw Mover to the Stepper

Picture of Connect Y-Axis Screw Mover to the Stepper

If you can't find stepper to bolt adapters, just use a blob of 2 part epoxy to connect them both. Be sure too keep it centered until it hardens.

Step 14: Connect the Screw Mover to the Y-Axis Sliders

Picture of Connect the Screw Mover to the Y-Axis Sliders

Once the stepper motor rotates, the screw rotates too, this causes the sliders to move. The sliders are moved by the help of the movers. There's no terminology for this free moving arm so let's just call it the mover. I used wood glue to temporarily align the wooden pieces.

Step 15: Add Screws for Reinforcement

Picture of Add Screws for Reinforcement

After leaving the CNC to dry, I came back and fastened the wooden pieces together with screws, making them more permanent.

Step 16: How It Looks From Below

Picture of How It Looks From Below

Here's a bottom view.

Step 17: Trim

Picture of Trim

I cleared a small portion of the sliders to prevent the Y-axis slider from touching the X-axis slider.

Step 18: Install the X-Axis Sliders

Picture of Install the X-Axis Sliders

Mont the sliders to the Y-axis frame.

Step 19: Double Check - Keep It Perfect

Picture of Double Check - Keep It Perfect

Keep them parallel with each other to reduce friction.

Step 20: The X-Axis Stepper Motor

Picture of The X-Axis Stepper Motor

Drill a hole for the X-axis stepper then add the screw, just like how I did on step 11 & step 12.

Step 21: Screw to Slider

Picture of Screw to Slider

I was looking for junk that I could recycle, then suddenly I found this scrap aluminium bracket from my collection of junk. I used it together with a block of MDF as the X-axis screw mover.

Step 22: The Z-Axis Rotary Lifter

Picture of The Z-Axis Rotary Lifter

This is where I stopped constructing. Finding and designing the perfect mount for the rotary tool was really challenging for me.

Step 23: Sink the Screw

Picture of Sink the Screw

Step 24: Prototype Stepper Controller

Picture of Prototype Stepper Controller

I used an L298N as a single stepper motor driver. I used an Arduino uno clone to control the driver. BTW, the Arduino Mega has enough pins to run three l298N drivers.

Step 25: The Arduino Code

A separate instructable coming soon! :D

Step 26: Motion!

This is where it ends, I hope you enjoyed reading my guide.

Step 27: Please Vote for Our "Next Bright Idea" Contest Entry

Picture of Please Vote for Our "Next Bright Idea" Contest Entry

Guys, please support our entry for "Next Bright Idea" contest! Under "Elizabeth Seton School Team - 2". A vote from you really means a lot to us!



Also, I will be posting the finished product around January for the US-Mexico green contest here in instructables so stay tuned! :D


ASCAS (author)2014-12-23

Thank you guys for the positive feedbacks! I had set aside the project for a while, lacking motivation to build it but you guys have given me inspiration to finish my work. Thank you all! I'll do my best to update the guide before my Christmas break ends. Wish you all a merry Christmas and a Happy New Year! :D

Yonatan24 (author)2016-08-11

Hi, I've added your project to "The Ultimate Collection of DIY Workshop Tools" Collection

Here is the link If you are interested:

Zaferk5 (author)2016-04-14


MattiR (author)2016-03-28

Awesome work, once again. It just always brings my moos down when I see an instructable, with a "Coming soon" section, posted likes 2 years ago, never to be finished. I would just love to see you make the hifi preamp and code for this :)

AmmisaddaiÁ (author)2016-01-26

great job, I'm a beginner in this topic and watching and reading you protect gave me many ideas.

excelent, is it possible that you share the measurements.



JaunS (author)2015-06-20

Hello, I have built all the hardware: physical structure, and have completed in entering the GRBLtoArduino and all the software. I have used the Universal GCodeSender and has successfully interpreted the software for is says " Grbl 0.8c ['$' for help] ". I've soldered the stepper motors (for I'm using steppers from dvd roms) to some salvages wire from a printer I took apart. I installed some female sockets in order to connect to the male pins on the CNC Shield ver. 2.01 . The orange light from the arduino flashes and in the Universal GCodeSender ver. 0.8 completes the operation b/c is says " ok " . I have no idea whats wrong. I know the steppers work b/c ive used a 9v battery to pulse the motors and they do indeed pulse. Ive used a multimeter to check its resistance and it works. I've checked the current on the motors once connected to the cnc shield and there's current. I have tested if the drivers are in fact getting power and they are. I've attempted the code " x=100 " , " $7=225 " but no motor movement. Can ANYONE help me ?

RoboSlave52 (author)JaunS2015-08-09

@Jaun S, If you're still having trouble it may be due to the fact that the motors you are using (from DVD ROMs) probably do not have enough torque to turn the screws used as leadscrews. Try disconnecting them mechanically from the screws and see if the motors can drive them. If they can be driven without a load then it means that your control circuit is likely OK and that they are probably just not strong enough. You may need NEMA 15 or even NEMA 17 sized motors to turn the screws or gearboxes. Hope thisw helps! Good luck!

JaunS (author)RoboSlave522015-08-10

Well they have enough to torque for when a 9v battery is used to test which two leads are a pair, they pulse and have enough torque to move the platform. Could it be the drivers ? I have an attachment for the arduino and drivers. I forgot what this attachment is called. Why could this be ? Power source ?

gailenjensen (author)2015-04-22

Looks good. Where did you get the stepper motors? Haven't seen any links for them.

Invento Guy (author)2015-04-04

please upload the codes And electronic circuits as soon as possible..!

scigazer (author)2015-04-02

this is awesome !! i know building a CNC machine is quite a tough work to do due to its precision requirement at work and any of its various application .. i remember when i was your age, i have no idea about this machine tho. hahaha! and here you are doing something like this, documenting and reaching out to share this stuff to others. you are so unbelievable!! :)

looking forward for the codes !! Godbless. :D

DavidS40 (author)2015-03-24

It's a home depot CNC... brilliant in detail and execution.

If you ever get to that g-code Arduino thing, many more folks will be intrigued!

DavideS1 (author)2015-03-23

Can I have the measures on CM?

Plasanator (author)2015-03-23

nice Job congratulations.

ahmeda37 (author)2015-03-09

are you using mach3 sot ware

ahmeda37 (author)2015-03-09

are you using mach3 sot ware

ahmeda37 (author)2015-03-09

are you using mach3 sot ware

MishalA (author)2015-02-19

dood, congrats on a job well don!! i have always wanted a cnc machine, now im starting to make mine. thumbs up man.. i could use the arduino sketch if you reached to that point.

bm_hackerman (author)2015-02-16

Please give us a link for the stepper motors.

ben2rouse (author)2015-02-06

What are the measurments?

Tecwyn Twmffat (author)2015-01-25

Is this project incomplete?

realmccormick (author)2015-01-23

Great Job, I understood everything til you got to the electronic stuff, but that's my shortcoming!

JETDRIVER1955 (author)2015-01-18

Hello have never commented before but your instructable has made me do so.You have done an excellent job with this and your descriptive work is outstanding I fully encourage you to please complete this project and update your instructable.

Especially if you can get it working and show it machining acyrlic . I realise this is only a low cost unit not a more costly aluminium version but you leave a lot of those instructables in the dust. Keep up the very good work son. I look forward to a conclusion to this or to any further projects you decide to share AAAAAAAA++++++++


neliason (author)2015-01-14

Great job man!

You should definitely finish this! It's a really nice design.
Also you gave me the exact motivation I needed to get started myself.

Finish it and I'll vote for you in any competition you apply for!

profpat (author)2015-01-13

nice one kid, keep up the great works...hope to hear from you soon!

Kante Tech (author)2015-01-11

Angelo you should definitely finish this project it has great potentional and could be one of your most impoertant projects.

oso1993 (author)2015-01-07

Great job you have done there !
But there is still one question i really do need to know how would you align the threaded rod with the stepper shaft while adding the epoxy ?
Thanks for sharing your work

Ducttapeking22. (author)2015-01-03

Have you made the arduino code available yet? I'm going to make this project and need to know what board you used and the code please. Thanks!

Also a blueprint of all the wood pieces would be helpful

Constructed (author)2015-01-01

I have always wanted to make one! Its always been too expensive for me.

Awesome project!

JapaneseEmperor (author)2015-01-01

can you set a link for the stepper motor. how much voltage should it have.

dapiguy (author)2014-12-30

What I'd like to know more about are model numbers of devices used, primarily the stepper motors. I'd assume takes a decently powerful stepper to move something like that, and I'm curious which ones you've had success with.

kingkhalid (author)2014-12-24

i need a ardino code plzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

dapiguy (author)kingkhalid2014-12-30

You can find Arduino code for CNCs and 3D Printers if you Google around. There is nothing standardized, and it largely depends on how you built the device. However, this page here has some nice information:

AlistairM (author)2014-12-24

what is your overall aim with this CNC? (not a criticism I just wonder). If you added a dremel or spindle to it would it be strong enough to etch PCBs?

ASCAS (author)AlistairM2014-12-24

I am planning to make it cut acrylic. I usually route my acrylic sheets by hand and rotary tool so building a CNC would save me some time. I also had the same idea of using a CNC for engraving PCBs. I guess it would work but requires a better z-axis lifter mechanism.

ffarook (author)ASCAS2014-12-24

plz send me ardino codes

dapiguy (author)ffarook2014-12-30

You can find Arduino code for CNCs and 3D Printers if you Google around. There is nothing standardized, and it largely depends on how you built the device. However, this page here has some nice information:

janjamore (author)2014-12-29

Ascas Hi

you say you bought the Stepper motors ($3 Alexan) at Alecan.

i went to their web page and according to them they only sell servo motors.

can you perhaps give me the specifications of these $3 stepper motors?

great job, i am also busy building a bigger machine than my desk top one


ASCAS (author)janjamore2014-12-29

I'm, not quite sure with the specs. It is one of those surplus type of stepper motors. They don't seem to have a datasheet.

cliffyd (author)2014-12-21

I liked how you went through each and every step, That;s good! I would like to ask to finish off a nice Instructable to please include to wiring diagram, then a finished photo. Good job!

ASCAS (author)cliffyd2014-12-21

Thank you! Sure, I work it out by January.

cliffyd (author)ASCAS2014-12-28

Ok looking forward to it

pleabargain (author)2014-12-27

Great piece of work here! Don't stop!

bwallace5 (author)2014-12-26

Practice filing a throw-away rod piece before attacking the treaded rod intended to be used, or cut intended rod extra long a couple of inches for just-in-case to begin over. Grinding to proper diameter repecting the rod's center is a must or the rod will viberate/flop.

bwallace5 (author)2014-12-26

Know what MDF will do in time, sag, so I'm building it with longer legs to be able to add stiffeners in the X and Y direction under the table and not interfere with the screw moving board.

bwallace5 (author)2014-12-26

At this step, I would clamp a 1/8-1/4 flat bar 2" wide for the jigsaw to slide along to follow the marked line closer.

bwallace5 (author)2014-12-26

That is a fine looking helper you've got watchin things there.

ндогонят (author)2014-12-23

That's a feat to build a CNC by hand... Like you said, building CNCs require CNCs (and AVR programmers have programmed AVRs on them...). But, now, you have a CNC, you can build the Next Generation CNC ;-)

Congrats for your courage, even if you didn't quite finish this one

ndr1968 (author)ндогонят2014-12-24

The "novice" will often advance progress. Not knowing the "way to do" something, he will often devise whole new concepts and approaches and sometimes, in the end, revolutionize the "way to do" something!

About This Instructable




Bio: Hi I'm Angelo! I am a 18 y/o college sophomore taking my majors in BS-ECE at the DLSU. I use my course as ... More »
More by ASCAS:DIY Motorized Fidget Spinner! (Contest Entry)DIY Motorized Fidget Spinner! Build A Bluetooth Boombox Speaker (from scratch)
Add instructable to: