Friday, September 23, 2011

Right then...

Ok, so it's been a while. The Zen Toolworks kit showed up and I built it. More on that later. I had quite the ordeal getting a grblShield, but the folks at Synthetos are good guys and came through in the end. Got it all wired up, and it actually worked! But after a few minutes the controllers began going into what I assume was thermal shutdown, and the motors made the most horrific noises during that process. I likened it to tossing a block of aluminum in a woodchipper. Turns out my crappy salvaged PC power supply wasn't cutting it. As I mentioned earlier, you don't need much power... but the unregulated 12V line was sagging to 11V and below, and the drivers/motors couldn't handle that. So I went off and bought a proper 24V regulated 15A power supply (This one, though I see it's indefinitely unavailable now, that's a good omen). This of course kills the whole $500 target if you're buying everything from scratch, so this blog will be hereinafter "Zero to CNC in $500ish". In my case I had an Arduino kicking about and the Rotozip as well, so technically I'm still under $500, but I know you dear reader may not be. Sorry about that. As a dear friend once told me, "we like to call that lessons learned in DIY land."

Friday, August 19, 2011

Product selections

I don't want to spend too much time offering opinions on the products I ultimately did not select, so here are the ones I did with a brief explanation of why:


  1. Zen Toolworks 7x7" CNC kit. $350 shipped. This kit is what made me realize $500 CNC machines were an option. The price can't be beat, and it includes the gantry, mechanics, and stepper motors. It lacks a power supply, stepper controller, and something to put on the gantry (a rotary mill a.k.a. "spindle", or FDM extruder, or laser, or ballpoint pen, etc.) Having a 7"x7"x2" working volume limits this machine to small parts, modest electronics PCBs, electronics project enclosures, or games' and toys' components.

    The larger your working volume, the stronger and more rigid the gantry components need to be to avoid flexing in the center of your working volume. If the "$500" aspect of this build isn't one of your criteria, they have a 12x12" kit. But if you remove the $500 goal, your options increase exponentially and personally I wouldn't consider the rest of this blog as particularly valuable to you. Even at $1000 you move into the realm of FDM extrusion machines, or much larger milling platforms.

  2. grblShield. $80 shipped. When you're on a budget, open source software is a natural choice. I quickly zeroed in on grbl which is a g-code interpreter that runs on the Arduino platform. I already had an Arduino, but I'll include it in my $500 for those of you that don't. Also, we'll be talking more later about g-code, but for now all you need to know is that g-code is the series of {x,y,z} coordinates that tell your CNC machine where to position the tool head. You draw your 3D object in CAD software, you convert it to a text file full of g-code in CAM software, and you send that g-code to an interpreter that moves the motors in the way necessary to position the tool head and move it from point to point to make your object.

    In the world of motor controllers, you actually have a lot of choices here. Most of the 3-axis (or 4) CNC controllers that you find online use the parallel port of your computer (old PCs have them, new ones use an add-on card for it, laptops are often out of luck depending on the devices support for USB-Parallel devices) and your PC interprets the g-code and sends the motor signals directly to the device. I don't have a PC with a parallel port, I do have an Arduino, and I have future plans to make my CNC a "headless" device in the garage without a PC always attached to it. Arduino+grbl was a clear winner. You could save some money here by buying components and building your own version of the grblShield, but they have done all the work for you in what looks like a very clean implementation. By my figuring I could have built one for $50 and used a few of the electronics components I already have, but this is going to save me time, effort, troubleshooting, and end up looking cleaner to boot.

  3. Arduino UNO. $30 shipped with Amazon Prime. This is a microcontroller kit that has more uses than you can shake a stick at. If you're interested in putting a "brain" in your DIY projects, this is the go-to choice for many. You write a program for it on your PC, flash the program to it over USB, and then disconnect it and power it independently (batteries or wall plug) to flash LEDs, read sensors, move motors, drive LCD displays, or anything else you can think up. We'll be leaving it attached to our PC via USB to receive a stream of g-code and output the control signals that position the stepper motors. You'll want an Arduino based on the Atmel ATmega328 microprocessor to run grbl in all its glory (UNO or the older Duemilanove that I used). If you already have an ATmega168 based Arduino, you can either remove the "circle/arc" functionality from the latest (0.6) version, or you can keep circle/arc but lose "acceleration management" by running the 0.51 version.

  4. ATX Power supply. Free. Seriously, for the power you're looking for, any PC power supply made in the last 10 years will be just fine. I have a box of old ones, you'll find them at the dump or at garage sales, and so on. All you need is 12V to supply <5A (60W). Note that your steppers will run faster at 24V or even 30V, but your motor controller will be dissipating far more heat. The grblShield has no heatsinks or fans, so you may find your controllers in thermal shutdown (stuttering or halting of the motors) if you run the higher voltages. From what I've read, 24V is fine under no load conditions, and thermal shutdown events haven't harmed the controller chips on the grblShield. I'll probably experiment with 24V at a later date.

  5. Rotozip rotary cutter. $40 shipped from eBay sellers. The budget's spent with this. I actually had a Rotozip already, but at the time of this writing there are 4 sellers on eBay offering a Buy It Now price of $40 with free shipping for a new one. You could also go used, or substitute a router if you have one, or step down to a Dremel rotary cutter if your plans are to work exclusively with softer materials like pine/plastics/hardboard. I'm hoping to have some success cutting aluminum so the increased power of the Rotozip will be a welcome addition. The biggest criteria that I'm unsure of at this point is the "runout" of the Rotozip tool. That's how much the shaft wobbles during operation, and it will greatly effect the precision of the end result. Improving the spindle on this $500 CNC machine will likely be the first upgrade. You could also leave this out for now and build your CNC using a ballpoint pen to test everything out... I know attaching the 30,000 rpm whirling death machine will be the last step in my build.
And there you have it. At least on paper that's a completely functional 3-axis CNC milling machine for $500, shipped (in the US)! I generally feel like this is the cheapest build out there right now for this quality level. There are money saving opportunities in either building the gantry yourself, or building the motor controller yourself, but it's not a ton. Cutting other costs will mean using more flexible materials in the gantry or a lesser quality spindle, which will come at the price of precision. I have my orders in for the ZTW CNC kit, and the grblShield, and I have the Arduino, power supply, and Rotozip already. Once packages arrive I'll get started on the build and update as I go.

Day 0

Hello my imaginary Internet friends.  Welcome to my blog.  The purpose of this site is to document a project of mine to build a functional CNC machine for under $500 total investment, not including basic hand/power tools used to assemble it.  I doubt I am the first to accomplish this, but I hope to be a valuable resource to anyone considering the same project by illustrating one path to success.  In my early research I found there to be so many people building homebrew CNC machines that the choices were overwhelming, and in many cases scattered all over the place.  It was also difficult to determine the quality of the end results people were getting.  Someone built a gantry out of plywood, and someone else built a scratch motor controller for their steel gantry.  So how good would the end results of that motor controller be on a plywood gantry?   Since there was no single-source documenting starting from scratch and ultimately showing a functioning machine and the resulting work product for a $500 CNC machine, I decided to do it myself and give a little back to the community.

So there you go.  This blog will start with product selection and links to where I ordered them, continue on to kit assembly and electronics, and wrap up with my preferred software stack and some alternatives for folks running on different platforms or with slightly different design goals.  In the end you'll see finished work product and if it meets your needs you'll have a recipe for replicating it.  Hope you enjoy!