Build a Cheap Handcrafted CNC Mill





Introduction: Build a Cheap Handcrafted CNC Mill

Wood Contest

Runner Up in the
Wood Contest

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

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


- 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

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)

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

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

Step 6: Vacuum the Dust

Remember always keep your work area clean! :D

Step 7: 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

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

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

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

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

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

Step 13: 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

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

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

Here's a bottom view.

Step 17: 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

Mont the sliders to the Y-axis frame.

Step 19: Double Check - Keep It Perfect

Keep them parallel with each other to reduce friction.

Step 20: 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

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

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

Step 24: 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

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



    • Epilog Challenge 9

      Epilog Challenge 9
    • Paper Contest 2018

      Paper Contest 2018
    • Science of Cooking

      Science of Cooking

    We have a be nice policy.
    Please be positive and constructive.




    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

    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 :)

    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.



    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 ?

    @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!

    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 ?

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

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