$250; Pushing The Limit On Cheap (And Functional) CNC Machine Builds


$250 cnc machine - rotary tool

Cost is always a drawback and a hurdle when buying or building a CNC Machine, especially when building it just for fun or hobby. [Eric] was able to cobble together a working 3-axis rotary tool based machine for about $250, a few trips to the hardware store and a bunch of time.

The machine design is loosely based on this one he found on Instructables. [Eric] chose this style because he felt the boom supported tool would have been more stable and easier to build than a gantry style machine. Skate bearings, HDPE sliders and c-channel aluminum were used to support the XY table instead of traditional linear bearings and rails. All three axes are driven with stepper motors and 1/4″-20 threaded rods. The Harbor Freight dremel-style rotary tool helps keep the overall cost down.

$250 cnc machine - rotary tool[Eric] is going really old school by using TurboCNC as control software. TurboCNC runs on DOS and DOS-based OS’s (Windows 3.1/95/98). The software communicates to the stepper drivers via the parallel port. There has been a little difficulty getting files to this dedicated computer as it does not have WiFi or USB capability. May we suggest a slightly newer computer (with USB) and checking out LinuxCNC?

Although the machine has been successful cutting MDF and foam so far, solid plastic has been a challenge. The ultimate goal is to mill out circuit boards. [Eric] has tried cutting a few and now understands how difficult it is. He’s making continuous improvements and we’re looking forward to seeing the progress.


  1. Waterjet says:

    The Harbor Freight dremel-style rotary tool helps keep the overall quality down as well.

  2. fartface says:

    Until the very cheap dremel knockoff is replaced he will never get any accuracy. the bearings inside those are insanely sloppy.

    • dave says:

      …and they get worse when they heat up. Also, i suspect he’s got a good bit of backlash using those threaded rods. I’d like tosee it cut a circle

      • pcf11 says:

        Threaded rod alone has no backlash. It is the interface between threaded rod and a nut that has backlash. If you were the least bit knowledgeable about the topic you would comment on the threaded rods pitch, because pitch is one thing 1/4X20 threaded rod does in fact have. Pitch, and major, and minor diameters. 20 threads per inch is an extremely fine pitch for a linear motion mechanism too. Many who use it are hard pressed to get beyond say 12 inches of travel per minute. Although I believe I can vaguely recall some reaching the blazing speed of 30 IPM. Which even in the world of DIY CNC is still impressively slow.

        In order to achieve that mind numbing motion one would have to drive those skinny rods to the blistering rotation of 600 RPM too. Now that really is pushing the limit of cheap hardware. At higher velocities one must consider lead whip. Whip on a 1/4X20 rod of any length is severe too. Needless to say there are not many out there making full sheet machines using 1/4X20 threaded rod as their lead screws. It would take over 3 minutes for the machine to rapid end to end. I am using the term rapid here loosely too.

        • hojo says:

          My mill uses 1/2″-20 lead screws and will run 80 IPM, although I usually limit it to 60 IPM due to kernel speed issues.

          • hojo says:

            I used to think that motor torque @ RPM was limiting my feed rates. I was stalling at like 25 IPM, and for a long time I just thought that was that and didn’t mess with it. One day I decided to really tune up my PC that runs mach3 to optimize it for CNC. That day I went from 20 IPM rapids to 60 IPM rapids, stalling up over 80IPM when the pulsing engine tripped up.

          • pcf11 says:

            When you run Mach3 can you run any other Windows application at the same time? I have always been lead to believe that when Mach3 is running that is all your PC does. Is that true? I don’t do Windows so I don’t really know. I am curious about it though.

          • Jimf says:

            That’s pretty good. 80ipm is 1600rpm. What make model of stepper drive are you using? I have switched over to using drives from geckodrive and easily saw double/triple the speed from the junk drivers I was using. They make good stuff.

          • hojo says:

            @pfc11, It really depends a great deal on the PC. I used to run my mill on my main computer which is a dual-core 3.1 GHz Athlon XP system. I could run Mach3 (25Khz Kernel) and play music or check facebook with no problems. I moved the mill over to it’s own dedicated system (P4 1.2GHz) and run it with a faster kernel (35 Khz). It pulses more consistently giving me faster rapids, but if I open a web browser, it trips the watchdog timer. So, depending on your hardware, and how much you’re willing to sacrifice to Mach3, it can do other things as well.

            @jimf, I use a Geckodrive too, and It’s awesome. But part of the kernel speed problem comes from this: My lead screws, as I mentioned, are 1/2″=20, which IS a pretty fine pitch, and the Geckodrive G540 I use ONLY does 10X microstepping, so my steps per inch is 40,000. That’s pretty damned fast pulsing for a PC. I’m pretty sure I could get significantly faster rapids by gearing up the steppers, or, in my dream world, putting in some ball-screws. The other options, which I am leaning towards is switching to a dedicated motion controller like Smoothstepper or KFlop which both run faster reliably and free up the CPU for other things. This has the added advantage of letting my run my servo-spindle/4th-axis at full resolution and speed.

          • Jimf says:

            Another option is the uc100 USB dongle. I just finished a lathe conversion for a friend and he wanted to use his laptop that didn’t have a parallel port. It was the least expensive option that I could find for him. I think he paid about $130 for it. It was a simple install with mach3 compatible driver. Pulse rate up to 100khz. I was impressed how well it worked. The lathe has very fine pitch metric leadscrew that my pc with parallel port I used to test maxed out around 40ipm. The uc100 got that lathe smoothly spinning over 100ipm using a very old laptop running XP/mach3. I might buy one for my gantry since that cnc is step rate limited at around 300ipm. The machine has precision nsk ballscrews.

          • hojo says:

            @ jimf, That sounds interesting, and I’ll certainly check it out. Unfortunately, it wouldn’t be ideal for my turning spindle/rotary axis, which needs at least 200Khz to achieve full resolution and speed. The servo driver has a step dividing function that lets me get it up to full speed, but I lose resolution to achieve that.

            How big is your gantry mill?

          • Jimf says:

            My gantry router was featured on Hackaday last year.


            Original pc motherboard died so swapped out to a slower one I had in my junk pile. It would be nice to get faster rapids again.

          • pcf11 says:

            @hojo So I guess you can run other software while Mach3 is running, kind of. If you want to see what smoother multitasking looks like then give LinuxCNC a try. There are some hardware probes that will make it skip a beat but as far as regular applications go it just works.

          • Jimf says:


            What spindle/rotary axis you have? Always interested in what others are using. 200khz is fast for stepper driver, near the upper limit for gecko. Servo on the other hand requires high step rates depending on the encoder. I like servos, my two bench mills are servo driven. My “bigger gantry router #2″ will be servo, if I ever find time to build it. All the linear rails, ballscrews, motors, drivers etc. are sitting in a pile collecting dust. Maybe this winter……..

          • hojo says:

            @jimf That’s pretty cool. Someday I hope to built a router with linear rails and ball screws. It would be nice to ignore backlash.

            This is my current setup: https://imgur.com/a/fSK1W

            It’s a Taig lathe spindle with my own motor mount and XL timing pulleys. The servo is a 4000 line, 200W, Leadshine BLDC. The brake is a mountain bike disk brake kit from China ($15). That piece of dovetail unbolts from the table for normal 3-axis operations. It’s Taig compatible, so most Taig lathe accessories work with it. My next project is to finish the brake actuator and add an index sensor. Unfortunately, while Mach3 will run it as both a rotary axis and spindle, it won’t track it’s position when running as a spindle, which means I need a solid way to re-zero it.

            @pcf11 I’ve been on the verge of trying out linux CNC for a while. It’s probably a lot more likely now that it’s on it’s own dedicated machine. How configurable is it? Can I create an extra on-screen spindle control? macros?

          • Jimf says:


            That’s a rather nice 4th axis spindle.

            For the my cnc lathe, I used a Hall effect sensor and a tiny magnet glued to the back of the spindle. Seems to work pretty good and was able to thread in mach3 just fine.

          • hojo says:

            @jimf Thanks.

            I was planning on using a hall sensor, but I started worrying about chips sticking to the magnet. I think I’m going to make an optical sensor like I had for my old 7×10 mini lathe conversion. I wish I knew someone with a plasma table so I could make a solid brake disk. Would make it a lot simpler.

        • dave says:

          No need to be a dick. I think I have at least a bit of knowledge when it comes to designing and building a cnc machine.

          • pcf11 says:

            Yet you thought a threaded rod had backlash somehow? It might if I was hitting you with it. BTW I do plenty of things in life that I don’t need to, simply because I want to. If I want to be a dick then that is my prerogative too.

          • dave says:

            The backlash comes from using 1/4×20 threaded couplers as drive nuts.

        • Jimf says:

          My very first cnc used 1/4-20 threaded rod and there was measurable backlash using a decent dial indicator. I used a threaded coupler as a leadscrew nut. I changed over to a tapped piece of delrin and backlash became very minimal. It really depends on how good/tight your leadscrew nut is.

          • hojo says:

            That’s a good option, you can run a nylon or delrin nut tighter over an inconsistent screw than brass or steel.

        • Jimf says:


          Ya your right more of a problem with metal sticking to the magnet on your setup. I put the magnet in the back of the spindle where the change gears are located on my 7×12. Then put the cover back on. Optical sensors are just as easy to use anyway. There is always the encoder index pulse output pin if you have it. The rpm will be off by whatever gear reduction ratio you used. Don’t know if mach3 can convert to correct rpm

        • pcf11 says:

          @hojo Well, LinuxCNC is fully open source so the question is not how configurable is LinuxCNC but rather how good can you code? The basics with LinuxCNC are easy but many find going further to be a steep learning curve. This can do anything, whether you can do anything with it is another matter though.


  3. Scott_Tx says:

    sounds like whales singing :P

  4. mikemac says:

    How did he keep the cost below $250 when each stepper driver is $155 a piece, plus $120 for the power supply? And he doesn’t even list the stepper motors themselves.

  5. hojo says:

    The problem with rotary tools as spindles is that, while they are fast, the run-out is much greater than any appropriate chip load for a small tool, so you end up doing all your cutting with one flute and making metal fuzz which dramatically shortens tool life. Fortunately, for PCB etching, a single flute engraving tool will probably run ok.

  6. hojo says:

    Useful information for improved CNC cutting: RPM * (# of flutes) * (chip load) = (Feed Rate). For example, if that tool is running 25,000 RPM under load (perhaps optimistic), and he’s using a two-flute tool (which is what I would use for any end mill under about 1/4″ unless I had flood cooling or compressed air to clear chips), it should look something like: 25,000 RPM x 2 flutes x .0005 inch = 25 inches per minute feed.

    • pcf11 says:

      25IPM is within the realm of reason to achieve using 1/4X20 TPI threaded rod. You’d only have to drive up to 500RPM. Under sustained use lead nut heat dissipation might become a factor though. Really, there’s no might about it, just when.

  7. erock2014 says:

    Yeah, runout is a problem. I think that’s why one of my engraving tools broke. I have a plan to take apart the rotary tool and replace the bearings with higher ABEC-rated ones.

    High speed isn’t a big concern of mine provided the machine can keep up with the required feeds and speeds. The total usable area is about 11″ x 9″, so even slow rapids don’t slow me down. Also, I only have plans to make one-offs so there’s no point in making the machine scream.

  8. Me says:

    I don’t have enough experience to have any real opinion on whether or not this design could be improved enough to etch PCBs. But… Just watching the video it looks good enough to be useful for something! Surely there must be uses for any-shaped cut pieces of foam.

  9. janostman says:

    I have a friend who builds these CNC machines for a living.
    And I mean the real thing, big ones.

    Might convince him to build the first desktop sized CNC milling machine?


  10. xobmo says:

    I’ll be putting my sub-$250 machine up on hackaday projects soon. I say 250 ’cause I cheated and got the Misumi First-150 coupon a few months ago for the extrusions… hfs6-3060, DRV8825 getech drivers, 1/4-20 allthread and tee nuts, a bit o’ IKEA scrap MDF, surplus E-bay steppers, a goodwill computer ($5) Helios thin client w/LCD panel…

  11. pfc11 says:

    Sorry, I was off my meds again

  12. Rogan Dawes says:

    My question is where does one get a decent spindle from? Everyone says not to use a dremel, but where does one find a good alternative?

    • Jimf says:

      Proxxon ib/e is a better alternative to a dremel. I used to use one to mill pcb boards. Another option is to get a Bosch colt mini router and get a Precise collet for it. Much more power but is rather loud. I now use a 2.2kw water cooled spindle spindle on my big gantry router. Wouldn’t use anything else now. Uses ER type collets that come in different sizes.

    • hojo says:

      My first machine (zenbot) used a Dremel, and it was good for wood, plastic, PCBs and some aluminum. It changed my world when I switched to my Taig mill. The ER-16 spindle is very tight. If I clean it good before putting the tool in, I can get it down under .0002″ runout, which is great for small tools. I think the spindle by itself is about $160, but you’ll also need a motor, mounting hardware, collets, collet nut, pulleys, and belt. If you use their stock motor I think you’d be a bit over $300 for a very good spindle capable of 10,600 RPM. The down side is that it’s not variable speed in this configuration (you get 1100,2200,3400,4600,6400, and 10,600 RPM) and the motor is heavy, too heavy for this mill certainly.

      If you switched to a DC or BLDC motor (maybe servo), it would be much lighter, and have the advantage of variable speed. Obviously there would be additional cost, and you’d have to fabricate a motor mount plate.

      I see numerous spindles for sale on ebay, but the decent ones are even more than this. Don’t get one of those ones with a ER collet coupled on the end of a motor shaft. Motor bearings are NOT spindle appropriate.

  13. denis says:

    use a dremel or whatever to drive a shaft supported on two quality bearings with a chuck at the end. saves modifying the rotary tool for negligable gain, provides fir improvement in future with fitment of a more powerfull drive

    • hojo says:

      Sounds like a great low cost solution.

      I’d suggest angular contact bearings so you can adjust out the end-play on the shaft. Regular bearings don’t handle axial loads well.

      They sell ER collets with a long shank pretty cheap on eBay.

      • Caboose says:

        Lawnmower spindles go for $30 on ebay and work very well as a CNC spindle if you’ve got something to drive them and a chuck to attach to the other end. Not sure how effective a rotary tool would be at driving one, though.

        • pcf11 says:

          Yeah you want a Briggs and Stratton motor connected to a lawnmower spindle. I have a 28HP V Tech hooked up to mine. That reminds me, I have to sharpen the blades on it. Today is nice, so I might do it.

          • hojo says:

            the hardest part is finding linear bearings and screws big enough to cover the whole yard…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Get every new post delivered to your Inbox.

Join 96,382 other followers