Introduction: Build Your Own CNC Milling Machine

Now that I'm retired, I have time to create things that I've always wanted to, like this CNC milling machine. I did a lot of research here on Instructables, which provided me a lot of ideas of how I wanted mine to look and work. I have no experience in this area, so the project itself was fun and enjoyable to see if I could actually do it! My goal was to make one that was accurate, reliable, with a reasonable work area and cheap as possible. Accurate, yes, it can retrace the same path over and over, consistently. Reliable, not sure yet as I have only been using it for a month or so. Work area 32.5" by 18.5". Cheap, perhaps, all in at $400 excluding laptop which I already had.

By the way I already have an ANET A6 3D printer which I love. So I figured how hard can this be, LOL!

My main goal for submitting this instructable is not to provide every single step (that's too complicated for me), but to help inspire those out there with the interest and passion to do so, as so many have done for me.

Again, I'm no expert, just a hobbyist as many of you are and have a lot to learn yet. The choices I made here may not be right for everyone, but worked for me.


1/2" MDF

Supported Rails and Ball Screws

Arduino UNO, GRBL Shield

NEMA 17 Steppers

Dewalt 660 cutout tool

Step 1: Tools

I decided to make mine out of 1/2" MDF since its cheaper than extruded aluminum. Thus, I only needed conventional wood working tools. I used a table saw, miter saw, drill and bits and a drill block for perpendicular holes, since I don't have a drill press.

3D Printer is optional; I designed and printed many little pieces like brackets, etc. Many of those could be made out of wood or metal brackets from the hardware store.

A soldering iron to solder all the wire.

Step 2: The Mechanical Build

Because this is my own design I had no plans to follow nor did I create any. The rails dictated what the size of the unit would be. The Y rails are 1000mm, X rails are 600mm and the Z rails are 300mm.

I started with the base and built a torsion style box which makes it very rigid and strong. I would cut a piece of 1/2" MDF and keep adding to the puzzle. There are ribs or reinforcements anywhere its needed to keep the MDF from flexing. There is no flex in the entire machine

The base was to all the other tidbits...

To get 25 holes drilled with some sort of accuracy I would draw the board layout in Fusion 360 and print the 2D drawing on a standard computer printer in actual size. I would then use a center punch to mark the center of each hole and then use a hand drill to drill them out as seen in the 3rd and fourth picture above.

After it was all together, I took it all apart and put a couple coats of polyurethane on it, those are the pieces in the seventh picture.

An important note: I took a considerable amount of time making sure everything was perfectly aligned and square to each other, especially the rails. This way there was absolutely no binding and everything moved very smoothly.

Step 3: Electrical

Since the gantry, etc. slid with such ease I decided to try NEMA 17 motors (only 92 oz. holding torque). With those motors I can move any axis at 3200mm/min or 125 inches per minute and cut at 1600mm/min without the motors missing a step. I haven't tried to cut any faster as that seems fast enough for me.

I used an Arduino UNO, running GRBL and a CNC GRBL Shield with 8825 drivers. I had no experience with an Arduino (again, I'm old, LOL), but there are may instructables here that will teach you!

I did however design a board with 4 opticouplers to prevent false triggers on the limit switches and Z-probe as seen in the second picture. So all that, plus an emergency switch and fan was packed into that little box.

I ran all the wires in cable drag chains, motor and limit switches together thus the need for the opticoupler isolation.

I used a 20V - 7A laptop type power supply for all the motors, etc. The actual draw is only about 2 Amps.

I used a Dewalt 660 cutout tool since its half the price of a trim router, has the same capabilities and comes with both 1/8" and 1/4" collets. I removed the nose cone and designed and 3D printed the mount for the tool.

I made a slide out drawer and mounted a docking station for the laptop. I use a wireless keyboard with built track pad as a remote pendant.

Step 4: Software

I use Fusion 360 to design my models and use their built-in CAM to set up the tool paths. I run CNCjs on the laptop which sends the g-code to the Arduino. CNCjs can use a USB connected camera to display the picture right in its user interface. Again, I'm no expert as these are the only programs I have ever used. They seem to meet my needs.

Of course the CNC is out in the garage, so instead of waiting out there, I use remote desktop software to see the desktop of the laptop from inside my house on my desktop PC. I can then see how much time is left and see it actually milling too.

Step 5: Finishing Touches

I then realized I had no place to put the CNC machine and it weighs in at 120 pounds, so I had to build a rolling base. Then after working with it briefly, I realized it made way too much dust and noise. I figured I could address both of those with a cover. I bought art foam board at the dollar store and created a hinged cover that tilts back. Its much quieter and there is no more dust outside of the box! Inside its a mess, LOL. I also milled the removable fence, cam clamps and hold-down clamps on this machine.

Step 6: Conclusion

I thought I would have to redesign and rebuild this several times to get it right, but luckily I haven't. It works just fine for me. I still have a lot to learn about modeling, bits and tool paths. But in the mean time I have designed and created these projects. The first two pictures are a laptop stand and the rest are some plaques. The video is this machine milling some HDPE. I milled these flags and have it published in another Instructables - Click Here

Again, its almost impossible to provide every detail and plans since so many of the items depend on each other as you build it. But please let it be known that it can be done as so many others have made similar ones.

Thanks for viewing and if I can answer any questions please ask.