View Full Version : Another 80/20 Build


MakotoKamui
06-22-2008, 10:30 AM
Hi, all,

Well, after reading so many great build logs on this site, I thought I should probably start my own, in case I can spark some ideas in others. I came at the CNC build from a slightly different approach from most, I think - I'm a graphics programmer for video games, and lack many of the tools you might normally need for a project like this, so I mostly focused on writing my own software to control the machine and tried to find ready-made parts for as much of the build as I could.

I want to use my machine mostly for making costume props, so super-fine detail work wasn't as important to me as large sizes. Thus, my machine has a footprint of about 55" x 34" x 28", with a moving gantry to give me a cutting area of 45" x 28" x 12". I don't think I'd want to try it with a 12" bit, but even shorter bits will let me get deeper carvings because of the vertical travel.

To solve my lack of tools problem, I did a lot of shopping at http://automation4less.com and http://automation-overstock.com. It's hard to beat the 80/20 extrusion for ease of bolting together. I decided to go with the 15-lite series of extrusion, to try to keep the weight down a bit, and to match up with Ahren's http://www.cncrouterparts.com parts - motor mounts and bearing blocks. I mated those with ACME screw connectors and anti-backlash leadnust from http://dumpstercnc.com, 1/2" 10 turn screws from http://www.mscdirect.com/, and bearings from http://www.vxb.com/. To drive the whole thing, I went with a 3-axis 4030 425oz kit from http://www.kelinginc.net/, which I added an additional motor and 4030 driver to so that I could have dual motors driving the gantry. All of this is riding on 30mm Hiwin rails from automation-overstock, which nicely can bolt through the top onto the 15 series aluminum. And they're thick enough that they will never move under the usage I envision for them. In fact, part of the reason I chose the sizes I did for my layout is because the numbers match up nicely between imperial and metric - 55" == 1397mm, for example.

After seeing some other posts on this forum, I set up the electronics in an old PC case, which seems to work out just fine, and looks better than a lot of other approaches I had access to.

The only really custom part I had to get made was a connector to get the leadnuts to attach to my 80/20. For this, I went down to a local shop called http://www.tapplastics.com/, which does custom plastic cutting for a low fee. I was able to get all four of my nut/aluminum connectors made for $30 - for the vertical axis, I used 1" thick acrylic, and for the others I used 1/2".

At this point, my machine is mostly built - I need a better dremel mount (or I need to upgrade to a router, but that's a question for another day), and protection for my control wires. But it moves, even if it is a bit on the loud side to be using in an apartment. I've been hunting around for ideas on how to fix or at least hide the sound, and will probably be ordering some sound dampening foam in the next week or so.

This post is already getting on the long side, so I'll wrap it up with this - if someone like me, without access to a tool shop, or even much in the way of experience, can build a CNC machine, anyone can. I'll come back later to post pictures and details about the program I wrote to run the whole thing later, if people are interested.

harry11733
07-02-2008, 08:46 PM
Keen to see pictures.

MakotoKamui
07-03-2008, 06:53 PM
Sorry, meant to post these earlier, but work got pretty busy lately.

I haven't had any time to clean up my wiring yet, or make a new Dremel mount, but here's a couple of shots of the machine itself... as you can see, it's set up in my apartment workroom, on a tarp for some cleanliness. I generally clamp my items to be carved to the support bracing for now, though I hope to come up with a better system at some point in the future.

The machine base is supported by small rubber feet on the bottom of the 80/20, bought from the 80/20 surplus eBay store.

MakotoKamui
07-03-2008, 07:26 PM
While I'm here and have a moment, I thought I'd detail out some of the programming I've done on this machine as well.

Since I'm a game programmer, I decided early on that I'd rather make my own control program rather than using one of the existing ones out there. There are a few reasons for this - biggest is cost. I can afford extra time building this application, and although time is money, I can't put the time saved in my bank account. Another is that I simply like to program. I know I could use an open source tool, but... well, it didn't take me long to make my test program, so I decided to build from there instead of from someone else's base code.

Accessing the stepper motors was really simple, once I found http://logix4u.net/Legacy_Ports/Parallel_Port/Inpout32.dll_for_Windows_98/2000/NT/XP.html, which allows you to read and write to parallel port pins easily on Windows XP. From there, I built up some low-level code that let me convert positions into commands for the stepper motors.

My program uses an XML file to describe the machine - a simulator type, a stepper motor version (including pins for input/output, information on the screw lengths and turns per inch, motor data, etc.), and so on. Once the program is booted, it can be used to jog the motors (using keyboard or gamepad), or carve an image or a 3D model in heightmapping mode. In either mode, it allows you to rotate and scale your source file within an area representing the carving bed. For images, it computes the luminance of each pixel, and uses that as height data. For 3D models, it casts rays to determine the height at each point of carving.

To carve, it internally simulates the carving head over the image or model, matching the machine movements to the simulation. This is done by keeping transforms so the program can convert from carving space (real world) to screen space and back.

Since I'm running my carving program on one of my older PCs, I also added network access to the program. That way, I can run a client program from my desk (or from work, for that matter), which queries the host about the machine's capabilities, then sends carving commands, which are performed over time.

One thing I have yet to add is vector commands for carving (like from DXF files) - it something I want to do eventually, but carving real-world versions of heightmap images and 3D models is much more useful to me at this stage.

ahren
07-07-2008, 07:12 PM
Great looking machine, and impressive sounding software you've developed! Any screenshots of the software? Any plans for releasing it to the cnczone community :)?

Ahren
www.cncrouterparts.com

MakotoKamui
07-08-2008, 01:54 PM
Thanks, your parts were a great help in getting this put together!

And, well, first things first, I need to get the software to a point where I'm not working on it every other day or so :) After that, sure, if people are interested, I'd be happy to post a version of it to the zone. That'll take a while, though, home programming is going slow because of work right now.