Excellent results can come from a small CNC router, but don’t forget the software!
CNC tools, whatever their flavor, can greatly enhance your “making” or DIY ability. My current tool of choice is a CNC router. Being familiar with a manual milling machine, the concept seemed similar, and the price of these is quite reasonable when compared to some other tools. As described in this post, my machine is a Zen Toolworks model, but there are certainly other options to visit like this Probotix V90 model noted recently in this post.
Although any number of CNC router models look great in videos and pictures, rest assured that even the best machines require some patience to get one running satisfactorily. Setting up the machine can be a challenge, as well as figuring out what your machine is capable of, but one thing that might slip peoples’ minds is the software involved. Read on to find out
all you need to know the basics of what goes on behind the scenes to “magically” produce interesting parts.
With a CNC router run by a computer (as opposed to a dedicated controller), you have three parts in your tool chain: Computer aided design (CAD), computer aided manufacturing (CAM), and a machine controller package. There are free and paid versions of each of these.
Design Your Part
The first step is to draw your part. To generate my part drawings, I’ve experimented with Inkscape, a vector graphics editor, and Draftsight, which is more or less free AutoCAD. Inkscape is a really cool program for generating more artistic pieces, like this random tree that I cut a while ago. If you want to do something more dimensionally-driven, my preferred tool is Draftsight. I’m very familiar with AutoCAD, and it’s available for Linux, Mac and Windows.
If you want to get into 3D design, Sketchup seems to be more-or less the standard for casual makers/hackers/etc. Perhaps I’ve been spoiled or brainwashed by quite a few years of working with Pro/E, and Solidworks to a much smaller extent, because I found Sketchup frustrating. I find Pro/E (now Creo) frustrating as well at times, but I’m paid for that frustration.
Regardless of what style or design program you choose, if you’re not familiar with the format, plan to spend a decent amount of time figuring out how to generate your parts.
G-Code, unlike what some mid 90’s rappers would have you believe, stands for General Code, and is what directly controls a CNC machine. You can write G-Code by hand, and for very simple circles or lines, this might be practical. For most circumstances, however, G-Code is much easier to produce using a CAM program to translate your CAD model into this format. I’ve tried out several packages, and all have their advantages and disadvantages:
- Gcodetools for Inkscape – Free, great for art generated on Inkscape. Somewhat limited in capability, and the documentation may take a little time to figure out.
- ESTLCam – Inexpensive at $35, and it has a good-looking interface. More of a 2D environment, and you can draw your parts on this program if you like.
- CAMBam – Reasonably priced at $149, with a very good free trial period. I primarily use this CAM program.
- MeshCAM – Really excellent looking user interface, and it has some neat features. Along with this polish, it is more expensive than some at $250. It’s geared more toward 3D users, so it wasn’t a great fit for my Draftsight-centric CAD style.
- Custom CAM routine – If you’re a programmer (or pretend to be), it’s possible that you could write your own Gcode generating script. I’ve linked to a post on my “pixel machining” Python routine if you’d like to see an example.
Along with actually learning the software, you’ll need to consider what kind of speed your machine can actually handle, and what to do so you don’t “crash” your machine. Your CAM program is where you set up your feeds, speeds, depth of cut, and other parameters.
Control Your Router
Once your CAM program spits out possibly several thousand lines of G-Code, your machine control software is what gets everything moving. I use Mach3, which seems to be a common program for hobby machine control. Like everything else, it has a learning curve, but overall I’m quite happy with how it performs.
One weakness I ran into with this (and that is probably true of other programs) is that you need an actual parallel port for it to work properly (not a USB-parallel adapter), and it’s not supposed to be run on a notebook because of possible power management issues. I’m sure there are workarounds, but in the interest of saving time, it might be a good idea to just dust off (or purchase) an old computer to run it on. It will run comfortably on slightly antiquated machines, so for $150 or so, you can have a computer that will run your router.
Another option would be LinuxCNC. When I started leaning CNC, I was almost entirely unfamiliar with Linux. The challenge of leaning a new OS along with a new router seemed like too steep of a learning curve, so I haven’t tried this option. As I use Ubuntu quite a bit now, I might take a different track today. If you have worked extensively with LinuxCNC please share you experiences by leaving a comment below.
To wrap things up, here’s two CNC videos that I’ve made. The first is me engraving a Tiger Paw, whereas the second video is a tutorial I did on how to engrave a logo using Inkscape. A CNC machine is a great addition to any shop, but as I hope I’ve pointed out here, not without its challenges!
Please note that separate from this post, I have received special pricing and/or samples in order to try out products from the companies representative of Zen Toolworks, Mach3, ESTLcam, and MeshCAM.
Jeremy Cook is a Mechanical Engineer with a degree from Clemson University, and works in manufacturing and process automation. Additionally, Jeremy is an avid maker and former Hackaday staff writer. When he’s not at work or in the garage, you can find him on Twitter @JeremySCook, his projects blog JCoPro.net, or on his photography-related blog DIYTripods.com.