Goal- CNC for less than $100

Moving the project over here from Bar Sport... and it's good to be tinkering again!

Put as simply as possible, I am attempting to build a 3D router which will be used to cut images into wood. Given that wood is the intended material, tolerances are important, but the material itself lends itself to tolerances in the tenths of inches and not thousandths, as in fine metal milling. Since the required tolerances are rather easy, I am cautiously optimistic that this can be pulled off in a crude manner, with the help of your friend and mine, Arduino.

My design is very simple- a horizontal xy table on ball bearing rails, driven by a screw drive and a stepper motor per axis. The vertical dimension and router will be a Dremel type tool, with a screw/stepper to control the plunge depth on the otherwise stationary (in x and y) cutting head. A key portion of the project is the rails the platform rides on, which are typically quite expensive.. until I was absent-mindedly watching a well-made kitchen drawer close. My design relies upon two sets of ball bearing drawer glides being used as these rails. So far, it's working stunningly.

My goal is to make it for under a hundred dollars, excluding the Dremel. Fifteen hours from the first concept sketch, I have a working prototype of the xy routing table.. With a cost still around fifty bucks, including the BoArduino (just a breadboard-friendly Arduino, a favorite variant of mine), the steppers and the controller circuitry... it seems that the hundred dollar goal is very possible.

Please note that if you are reading this and want to make one, this is something there's no kit for. You need to be able to work things out yourself and come up with solutions for the problems you run into. My goal is to inspire others to come up with their own designs, like I did- I wanted a machine I can't afford.. so I am foolish enough to believe that I can just build one myself. Even if this device succeeds, don't kid yourself- this is FAR from a well-engineered device, it will break, and there's likely to be many issues. That being said.. I'm having a ball with this, and to be honest it's pretty cheap and not THAT hard. Epoxy and duct tape are required !


Image taken while XY table running test code... VERY slow but it works!

And here's the couple of posts from the Bar Sport discussion, to keep things tidy:


Adding Images, Text to follow...

Here's a breakdown of the parts and shots of the project so far. Epoxy putty has been used to reinforce the mounting of the motors as well as several other points where mechanical stress seems to be more likely to be a problem for liquid-type epoxies.

Boarduino and 2x ULN2003A
A Boarduino is simply an Arduino variant that is designed to be used with breadboards. I am a huge fan of the BoArduino, as it can be plugged directly into standard perfboards for semi-dedicated prototypes without the cost or pin alignment issues of the standard Arduino form factor. Other than the form factor, it is functionally identical to a Serial Arduino, as to save cost and space, the USB-to-TTL serial interface is done off-board.

ULN2003A are NPN Darlington Arrays which lend themselves to TTL-driven switching applications. Each chip has seven Darlington pairs as well as a supression diode built in, to handle inductive loads like solenoids and motors. I use ULN2003A heavily, as they are very inexpensive (fifty cents or less each) and reduce component count drastically. ULN2003A is ideal for Unipolar stepper motors like the ones I am using, as well as other switching applications that require less than 30v and a total of less than 500ma load on the chip. Another benefit of ULN2003A (or any of it's relatives that are configured for TTL logic levels) is that the Darlington pairs come premade with built-in base resistors. A lower component count always makes a project more likely to succeed.. so the fact that they are designed to take their switching signals straight off the Arduino's logic pins saves a little money and complexity.

Two Gear Reduced 5v Stepper Motors
Movement is driven by these stepper motors, which can be bought for around two dollars each online. They are mass-produced for applications like operating valves and air vanes in air conditioners. They are very slow, but due to the 1/64 gear reduction, they have tremendous torque,especially considering their tiny current draw.

I expect that the speed of the motors may make me replace them with something more robust at some point. The table movement can be done in tiny increments too small to actually move the table beyond the play in gear train, but at top speed it travels so slowly it takes five minutes to move the work surface through it's roughly 12" travel range.

Ball Bearing Rails, Base, and Work Platform
Two sets of ball bearing drawer slides carry the work platform, which is moved in the x and y axises by a bracket connected to the drive screws (which in turn are connected to the steppers, one per axis) allowing for reasonably accurate movement. These were gotten from a home supply store as "14 Inch Side Mount Ball Bearing Drawer Slides", two per package for about twelve dollars. We need two sets.

In use, a third axis, consisting of the router (a Dremel type tool) on it's own drive screw will provide the routing depth, the z axis. Other than depth, the router remains stationary and the work platform along with the routed material is moved relative to the cutting head of the routing tool.

The material I have used is 3/8" standard plywood, purchased from a cull bin. If you don't have enough, buy a half sheet and keep the scraps for other projects. If you look closely, you will see that the plywood cuts are sloppy and not even particularly straight. It's the rails which make them move properly, not being perfectly square in shape!

2x limit switches
These are some I got off ebay, I think they cost around fifty cents each. All that is really needed is a switch that will be pressed by the platform when it reaches the "Home" position. Without some way to detect Home position, the system can't be sure where the platform is exactly. Starting from a known home position allows for repeatable and accurate movement, at least as much as we are looking for. At this point, I see no need for rotary encoders or more complexity than a home position switch. Since we can control the stepping motion relative to that point, our stepper motors provide much more accuracy in terms of measurement than a position encoder.. which would also add cost and complexity.

1/4" 20 TPI threaded rod and Hardware
A Buttload of Epoxy and Screws
A good amount of this project utilizes fudge factors and making parts in questionable ways. Necessary for this effort is several types of epoxy (shown here are a two-part liquid epoxy, as well as stick-type putty epoxy) as well as screws and random bits of metal as needed. Truly, if you don't consider duct tape a legitimate construction material, read no further.

There's also wire, tape, oddball brackets, and many screws ranging from wood screws to panhead machine screws, nuts and washers and the like. It's key that the rails be connected to each other securely, and to the platform and base as well. As long as you aren't restricting the rail movement, adding more screws (within reason) and epoxy isn't a bad idea. If using epoxy, be sure of that you are doing what you want, it's very hard to undo epoxy because you forgot to put a screw in the rail. Typically, firmer connections will help minimize play in the work suface motion.

@focalist: You've inspired me to at least purchase the motors and drivers; I found a chinese supplier on ebay who was selling the motors and ULN2003 driver boards for about $8.00 each; easier and faster than me soldering 'em up. Not sure when I'll get around to using them (someday, though), but thought I would go ahead and get them while they still existed. I'm following your bodging progress; can't wait to see what comes next!


focalist, let me know when you're ready to go! I want to route a Cross Roads Fencing Center sign on a 6' 1x6 or 1x8 (got some boards downstairs already) to hang under the Kennedy Business Center sign at the club. Maybe do a foot of the board at a time?

You won't regret buying the motors. I've got two of them as the direct-driven wheel motors on a robotic car thingie, it can be "driven" with incredible accuracy. I have also replaced the recycled ones I used to make the wall plotter with a pair of them. Their only real drawback of them is their speed.. but I can deal with it most cases, given the cheap-as-dirt price on them. You are going to end up buying a box of 'em from a wholesaler.. I paid less than twenty dollars for a box of eight including shipping, and am thinking about getting more. They are remarkably well made for their cost. The speed is due to the 1/64 gear reduction, so there's not a lot that can be done speedwise unless you do external gears or what have you. Paired with a ULN2003A premade board, all you need is a couple of jumpers to the control pins.

There is one quirk with them- if using standard Arduino stepper libs, the winding connections need to be declared in 1-3-2-4 sequence, rather than the expected 1-2-3-4. There's a few threads on this. Outside of that, a stepper with 2048 steps per revolution is amazingly useful...

@Crossroads - Will do. It's likely that I will be able to test cuts of a single depth by just locking it position manually by the end of the weekend. I'll be wiring the limit switches sometime tomorrow, then I'll probably do some testing by writing a few sketches that will be useful to see how accurate and linear the motion is, by just putting some paper on the platform and use a pen instead of the routing head. After today's reinforcing session with quite a bit of putty and screws, I'm becoming quite confident that the device will work as I am hoping. Play in the mechanicals allows maybe 1/32" wiggle if you apply much more pressure than the device will ever see in use. Come to think of it, it ought to be possible to just work down the board in stages, cutting a foot of it, move it a foot, repeat until complete. Have to think about that one.

Also trying to help out a charity clean up a huge database mess.. volunteer work that I can do at my own pace. When I can, I try to help out those kinds of organizations.. you know, the kind that actually DO good things. I can still disinmanglify almost any data, throwing some effort there to stock up on good karma before I let loose with some things I'm planning that will balance out all that good stuff... :smiley:

I have personally built a cnc router and I think you may want to get some more threads per inch. The 1/4 inch rod is probably appealing, but the 20 TPI will cause issues with travel times and weak torque on your motors. The faster the stepper motor turns, the lower the torque it can provide. I am currently looking into changing my rods to a more coarse thread for faster travel.

All of that being said, the goal is to keep the project under $100, so I understand if speed and torque are not of prime concern.

Well, the speed is an issue, but because the steppers are internally geared at a 1:64 ratio the torque is not really an issue per se. If I switch them over to a direct drive to the screw standard stepper, I would need to use something with appreciably more ungeared torque.

Having to deal with a furnace issue, so not had a chance to measure the actual rate of travel, but suffice to say that it is in the one to two inches per MINUTE range.. But since it's a gear reduced motor feeding that 20 TPI, the torque is plenty to effectively rip the assembly apart if you ignore position and start backfeeding the screw against the limits of the slides. Limit switches are needed.. If it can break two ton bind epoxy, I think it may be okay for wood routing.

Dealing with a furnace failure at the moment.. The one device in the uinverse that gives me the heebie jeebies.

And of course the furnace goes the night of a snowstorm coming in!
My has stopped working a couple of times, always the thermocouple that sits in the pilot light, always on freaking cold nights too.

Had to have Rodenheiser plumbing come in earlier this winter to replace zone valves too, were getting stuck & not opening, so no heat in 1/2 the house.

Hope you got your furnace fixed. Used to work on them for a living. Work for a manufacturer now. I know how much of a bind that can put you in. Can be expensive too.

Furnace is fixed.. parts to the tune of almost a thousand dollars. Thank goodness the labor was free.. my buddy is an HVAC mechanic, and done many favors for him over the years. I'll mess with just about anything mechanical or electrical- but Gas gives me the screaming heebie jeebies. Leave that level of dangerousness to the pros.

I should have a drawing test with the cnc table done later this afternoon....

Wow, how much did you end up replacing?

Wow, you could nearly replace the whole furnace for that price.

LOL... You haven't purchased a furnace recently then! We have about five years left on this beast, according to my buddy, the repairs and replacements should hold it together that long. Replacing a furnace is more in the range of three to five thousand dollars.... without labor. (and that is if we keep it standard gas. It's been my hope to replace with a heat pump, but that would be nearly twice the cost.