$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.

59 thoughts on “$250; Pushing The Limit On Cheap (And Functional) CNC Machine Builds

      1. 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.

          1. 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.

          2. 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.

          3. 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.

          4. @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.

          5. Hojo,
            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.

          6. @ 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?

          7. @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.

          8. Hojo,

            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……..

          9. @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?

          10. Hojo,

            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.

          11. @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.

          1. 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.

        1. 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.

        2. Hojo,

          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

          1. I actually have very accurate RPM information, because it’s a step/direction spindle. What I need is a zero location on the spindle for milling operations (and threading).

  1. 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.

      1. There’s no way you’re running 48V into a TB6560 and it living to tell the tale. 28V maybe, but that is an odd value to find in a PSU. 24V is a more common voltage. At 24V input I can run my TB6560 drives up to 720RPM and get torque out of them. That is all cheap is going to get anyone. I have twin stack NEMA 24 motors too. I don’t know what a little NEMA 17 motor can do. Less I imagine.

        1. Good point. My Geckdrive takes up to 50V, so I use 48V. I wasn’t really checking for compatibility. I just grabbed some cheap low-cost examples. It does say it will handle 36V though. The extra voltage pays off big @ speed.

          1. That 36V maximum rating is exactly that, the maximum the device can handle under any circumstance. When a stepper motor runs it generates something called back EMF. That EMF spikes the voltage higher than input voltage. Gecko knows this so they use parts inside their drives rated for much higher voltage than they rate their drives for. I believe for your G450 drives Gecko actually uses MOSFETs rated to 85V. Because Mariss knows all about back EMF. He also doesn’t like getting his drives back.

            The imported TB6560 manufacturers on the other hand are just spitting out Toshiba’s maximum Voltage rating for the drive IC. That means if you input 36V to a TB6560 it will experience a higher voltage and self destruct as a result.

            So technically 36V maximum is right, but practically you can’t do it, and run a stepper motor at the same time. Well, not for more than a step at any rate. As soon as that magnetic field in a motor coil collapses, and it sends its EMF back into the circuit, BOOM!

            Happy 4th of July I suppose?

          2. I think you’re confusing Back EMF and flyback from switching off a winding.

            Back EMF reduces the current across the winding, but does not increase the output voltage.

            Flyback generates a huge opposing voltage when the output is switched off, but is easily handled with a diode.

            The TB6560 is rated for 40V Max. I’ll admit that’s not much of a safety margin at 36V, but I strongly suspect that the failures at 36V are more related to “Safe area of operation” issues than overvoltage.

            Maximum power dissipation according to the datasheet is 43W with a very effective heatsink. Maximum current is 2.5A (or 3.5A for some version), so at 36V for example, the driver can only supply a little over an amp without exceeding its power rating.

            from here: http://www.daycounter.com/Calculators/Stepper-Motor-Calculator.phtml

  2. 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.

  3. 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.

    1. 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.

  4. 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.

    1. Honestly, I think you’re going to be chasing your tail using a rotary tool. Even better bearings are going to move around in the plastic. With machining, rigidity is absolutely crucial.

  5. 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.

  6. 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?


  7. 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…

    1. 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.

          1. That’s pretty slick… however, I feel it necessary to point out how odd it is that people spend so much time and money without spending just a few minutes on feeds and speeds. Way too much aluminum powder in this hobby…

    2. 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.

  8. 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

    1. 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.

      1. 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.

        1. 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.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.