So, you have a CNC laser cutter but you want a CNC mill? Problem solved.

This project is a small CNC mill that can be assembled from store-bought and laser-cut parts for about $800 without machine tools. (If you have access to a shop with a chop saw and a drill press that'll be helpful, but you can get by with a hacksaw and some wrenches.) As pictured it has about a 4" x 6" x 1.5" working volume, but it can easily be expanded and modified.

The killer app for this is making custom printed circuit boards. But it can also make plastic and wood machine parts (including all its own parts), mill custom aluminum instrument panels, create stencils, and make artistic etchings for print-making.

I've included both Adobe Illustrator and Autocad DXF files for the custom parts, as well as an Arduino sketch for controlling the brushless motor.

The Steps:

(1) Setting expectations, and words of caution

(2) Buy parts and find tools

(3) Laser cut the custom parts

(4) Assemble the Z-axis and spindle

(5) Assemble the X-axis carriage

(6) Assemble the Y-axis and bed

(7) Assemble the frame

(8) Wire it up

(9) Tuning, tweaking, and milling tips

(10) Software you may find useful

Step 1: Setting Expectations, and Words of Caution

Prior art:

openMill is really cool, but it's not the first or the best table-top mill out there. We're huge fans of the MTM projects at MIT (particularly the work of Jonathan Ward, Ilan Moyer, and Nadya Peek), and Othermill, which were great sources of inspiration and ideas, many of which we shamelessly duplicated. The Shapeoko is another great example, and there are tons of other people doing neat DIY CNC projects, each with their own strengths and weaknesses.

We focused on making openMill easy to source parts for, build, and modify - even at the expense of design elegance or performance. You'll almost certainly see parts of this design you want to change - that's the point! We've tried to make it easy for you to make the changes you want.

How well will openMill perform? It depends on how well you build it and how well you use it. If it's well built, lubricated, and aligned and you keep the materials feeds low you should be able to get precision in the .001" range. But if you don't make sure the frame and rails are square and try to mill hard materials too fast then you'll get backlash and chatter.

More generally, even though it may only take you a few hours to assemble the mill, this project isn't really plug and play. Machining is hard, so expect a learning curve before you go from functioning mill to quickly making useful parts. You'll probably break some bits by trying to run bad G-Code. You may not get the axes well aligned on your first try. openMill can't stop you from doing things wrong (including things that will destroy the mill). But the fact that the parts are all cheap makes this a fun way to learn and experiment.


We've also worked hard to keep the costs low and the design robust, so you can make an openMill for about $800. But you should budget some extra money for duplicate parts in case you make a mistake or break something. And once it's working you'll find that you want to buy a few more endmills and some raw material to experiment with. We've tried to make it easy to upgrade. For instance, if you want to add a fancy lead-screw and wear-compensating nut (and boost the project cost by about $200), the parts already include mounting holes for them.

openMill is a high-speed super-sharp rotary cutting tool that moves robotically by itself without regard to the presence of valuable objects (read: fingers) in its path. It can easily put a hole all the way through your iPhone and the hand holding it, throw a metal shaving (or broken bit) clear through your eye, or set material on fire with friction. It also doesn't have shields or safety interlocks. So respect the potential for injury and danger, don't let it run unattended, wear safety glasses, and keep your hands away from it while the spindle is on. Seek adult supervision if you're under, say, 40.

<p>Nice.</p><p>perfect combo realized.</p><p>Its on my list.. :)</p><p>Cheers</p>
<p>I'm cleared for making parts, building the machine, and ultimately operating it. I want to build so many things just wanting for the lottery!!!</p>
<p>How did you avoid the backlash due from the flexible shaft coupler ?</p>
<p>I finally threw my OpenMill together. I had Polulu handle the laser cutting of the acrylic before I purchased my own. I added a few parts, misumi 2020 T brackets for the back side of the gantry arm and 2020 corner braces to support the upper gantry square and the lower connector on another axis. I also changed out the standard bolts to a PTFE impregnated threaded rod that cost just a couple of dollars more. I am using the latest 3.10 version of the Arduino CNC shield. This supports PWM modulated spindle speeds, meaning you only need one Arduino not two for this project from <a href="http://blog.protoneer.co.nz/arduino-cnc-shield/">http://blog.protoneer.co.nz/arduino-cnc-shield/</a>. The Arduino Uno + CNC shield is just over half the cost of the one used in the article and it supports GRBL 0.9 which has the spindle speed functionality, properly. </p>
<p>I am completely gutting the build after having built the OpenMill and I am replacing all of the movement system with Openbuilds V Rails and V Wheels. Despite taking meticulous effort to ensure that everything was properly aligned during the build process. I found out that after the assembly, the Pololu acrylic cuts were not perfect and were causing an up repairable fault in the build. Some of the holes are slightly oblong on the Z axis, causing the axis to rock back and forth. One of the X axis holes was also slightly off center, causing the X Axis to stutter when moving back and forth on the rail. Considering the cost associated with building the OpenMill and the costs of replacing the movement, this build is prohibitively expensive. You can buy the entire OpenBuild CNC assembly, the spindle, controllers and upgrades forless then the cost of the original BOM. Add to this the cost of replacing a single piece of failed acrylic, the replacement parts for rebuilding it and the fiddling and the OpenBuilds is so much more cost effective. I still think it is a great project, but I would recommend anyone considering building this to steer towards something a little better designed. </p>
relly a good project.
What laser you use for cut
<p>Wow, this is so cool. </p>
<p>Sigh, I sourced all the parts spend several months doing so, getting everything in, buying the aluminum sheets and then asked someone to cut them using your files. They quoted me $7000 to convert and cut the pieces out of 1/4 inch aluminum. I took it to the shop at our local college today and they just scratched their heads and said it can't be done with the existing files. </p>
<p>To make laugh on myself.... I've made a sort of &quot;wood-age-CNC mill&quot;.</p><p>My project was started in 2006 and I'm proud to see it working about 1 year for now.</p><p>So I can say &quot;I MADE IT&quot;. My professor was the huge internet, taking for a base the basics of CNC movements and my background as a metal worker, in turning and milling operations for almost 12 years, it was simple but hard &lt;do you get it? &quot;simple but hard&quot;&gt; to start from a big nothing to my little CNC which right now is carving something religious.....</p><p>So, in other word's I MADE IT..... and I recommend to all who try to do something like this, when run into some difficulties.... DON'T STOP, GO AHEAD YOU WILL SUCCEED. That was my thought then and it will be allways.</p><p>www.einstein.ucoz.com</p>
I'm making this project according to given dimensions. please provide the videos when you were working on that...
<p>What a wonderful project! Sure it will be my next project. So I will try to improve it adding a recursive perk: a Bluray-diode engraver. Just a simple adaptation to the spindle mount and a dual mode calibration could do the trick. </p><p>Thank you so so much.</p>
<p>i need a ardino progaram plzzzzzzzzzzzzzzzzzzzzz soon</p>
<p>I want to buy the where is unpowered spindle?</p>
<p>Hi, I&acute;m planning to use same brushless motor and ESC for my spindle but what I can not figure out from text and images is what power source are you using to power up ESC? Thanks for reply. </p>
<p>The spindle power source a 12V, 3A wall wart. (See the parts list for a part number.) </p>
Ok, I&acute;m not in USA but this will help me find right power source. Are you powering just GRBL shield with this power source or whole setup? ESC is connected to power source through GRBL shield or directly? Do you have some schematic how is everithing wired together?Thanks
<p>is the grblShield compatible with arduino mega?</p>
<p>No idea.</p>
<p>Can you please explain how the carriages sliding the slide in the grooves of the aluminum bars? From the photographs is the one thing you can not see clearly. Sorry for my low quality English. Thanks</p>
<p>Hmm. During normal operation nothing should slide on the aluminum T-slot framing - the T-slot nuts clamp those parts in place. Instead, the parts slide along the round steel rails when the lead-screws turn.</p><p>However, during adjustment you can loosen the bolts fixed to the T-slot nuts, and then the nuts can slide along the channel. Does this answer your question?</p>
<p>Yes, thank you. You've been very kind. Now I understand how it works. Great project.</p>
<p>Honestly, you should just use a TinyG as this is what the othermill software uses. You could use othercam then. </p>
<p>Fair point. I picked the Arduino / GRBLshield config. because it gives you a little more mod. flexibility. And Othercam does a great job of making G-code paths and exporting them...</p>
<p>I would have to disagree :) grbl is quite limited. That is why we made TinyG :) However I am biased!</p>
<p>Don't forget about PyCAM!</p>
<p>Great point! I didn't include it because I haven't actually used it yet. But it's rising to the top of my queue...</p>
<p>Also, as an afterthought...<br><br>You can also use LinuxCNC, which is an open source OS designed to handle G-code interpretation and communication with the motor drivers... basically it turns a partition on your HD into a MCU + GRBL.</p><p>GRBL seems really awesome, but I haven't got it to run code yet. The only thing I don't like about it is there's no tool change protocol yet (or have they added that already?).</p><p>Lastly, if you need a good motor driver shield designed to run with Arduino and GRBL, check this out! I got one, it's awesome.</p><p><br><a href="http://blog.protoneer.co.nz/arduino-cnc-shield/" rel="nofollow">http://blog.protoneer.co.nz/arduino-cnc-shield/</a></p>
<p>Thats a great project, Im in the process of building a similar project but its a 3D printed mill, just waiting for parts to finhish it off .</p>
<p>That looks awesome!</p>
<p>looks like a nice little mill, but I need a laser cutter - can this be modded into one? What would need to be changed out other than the tooling head?</p>
<p>Cool idea! But I think it's probably ill-advised for safety reasons: to make it work well you'd need an IR opaque, fire-proof, and very well ventilated enclosure, and probably also positive pressure air for lens protection.</p><p>You could mount a diode laser (1 W-ish) on the head and etch away paint, and get through paper and thin cardboard. But you probably couldn't do the kind of sturdy plastics you'd need to make more laser cutters... And I think the software mods to GRBL might actually be a little tricky, because you have to modulate laser power with travel speed.</p>
<p>Cool,that is an huge project!</p>
<p>That is so awesome, i like it!</p>
<p>Awesome project!</p>
<p>SUPERB! A month ago I started a CNC project. I was stuck on the g-code stage, until you posted those links! Thanks bro, this is very useful!</p>
<p>This is fantastic! I have a feeling I will be building one in the near future. </p>
<p>I'm really impressed, that's an huge project! Awesome!</p>

About This Instructable




Bio: MD-PhD student, neuroscientist, cyclist, robot-lover.
More by joebell:Make a CNC mill with a laser cutter Double-sided PCBs with a laser cutter 
Add instructable to: