Unorthodox Home-made CNC Machine

PVC CNC Machine

Here’s a rather unorthodox home-made CNC machine we haven’t seen before!

[ModHappy] recently accepted a challenge to design and build a CNC machine out of cheap and readily available components from a hardware store.

Wandering around the store he noticed the plumbing isle and he started playing around with PVC pipes on the floor, greatly confusing the store employees. He had a frame constructed, but still needed a way to achieve linear movement. His calls were answered in the electrical isle, where he made use of conduit wall-mounts! They only required a minor modification to go from gripping the pipe, to sliding along it. A few fasteners later, some stepper motors from a broken scanner, a CD-ROM drive for the z-axis, some hacked together couplers using set screws, and the mechanical build was complete.

On the controls end, he made use of a cheap Chinese TB6560 CNC driver board off eBay, which he modified slightly to increase reliability. The whole thing runs off LinuxCNC (which is free) on his old laptop — good to note, it can also be run live if you aren’t yet enlightened with a Linux OS.

Stick around after the break to see it in action, drawing out an awesome site’s logo!

If you’re looking for a DIY CNC machine that is a bit more robust, here’s a bolt together version that uses metal tubing instead of PVC pipe.


  1. Hack Man says:

    Finally, a suitable use for PVC!

  2. h_2_o says:

    genius, looks like a great platform for cheap 3d printing IMHO

  3. Eirinn says:

    Hmm and the PVC along with its radial structure should also act as a vibration dampener. I’ve wanted a CNC for a long time, maybe now is the time.

    • Roel says:

      Exactly my thoughts!

    • Sandman says:

      I wonder if filling the pvc with sand or similar might further improve the performance?

      • DougR says:

        I have used both expansion foam and a sand/epoxy mix to stiffen PVC based construction. The expansion foam works great and is easy to use. It adds a bit of mass and a fair amount of additional stiffness.
        Mixing a combination of sand with two part epoxy works great. Use slow setting two part epoxy for a good working time. Mix the epoxy up then add as much sand as you can but still keep it pour-able, Think oatmeal consistency. The sand/epoxy mix adds a huge amount of mass and dramatically stiffens the structure. The downside is it can be messy and the sand will settle a bit. The sand reduces the issue of overheating so you can fill fairly large volumes, just be aware of the settling issue. Sand/Epoxy is amazing at vibration dampening which could also be a big help in a CNC machine.

  4. IndianTinker says:

    This is It! #MJ :P
    Exactly what i was thinking of building.. It would be a great project to build ! Thanks HackADay! :D

  5. Wretch says:

    Super. I’m fast running out of excuses not to build one of my own now.

  6. jpa says:

    May need some slight improvements to suit any particular purpose.. doesn’t seem strong enough to actually mill anything besides styrofoam, and may be too slow for 3D printing.. Otherwise very interesting use for PVC pipe.

  7. Ollie says:

    Whilst it’s definitely good seeing these sorts of projects being built, I’d love to see an equivalent article on how to get them WORKING and calibrate them. I don’t know much about CNC software but I imagine that must take a very long time to work out the software needed and tailor it to your specific build, This is the main thing that puts me off seriously thinking about building one of these.

    Does anyone have any good links/guides about this that I and others can read up on?

    • Georg says:

      Take a look at emc2.

      • Steve says:

        Ollie, just learning the speeds and feeds of different cutting bits on different materials is as much a challenge as learning to configure linuxCNC, so get off your ass and learn it already! If you get stuck, contact me, I’ll help you out.

    • I’ve just got my first CNC machine running (a clone of the Mantis 9.1, running GRBL to control it: and I too was worried about the lack of articles about calibration and setup. I was surprised how little there was to it in the end. I’ll blog about it shortly and add a link here, but it amounted to the following:
      1. Power up driver board and connect it over USB (using Universal GCode Sender)
      2. Power off (do this every time you change any wiring)
      3. Plug in steppers.
      4. Tell GRBL how many steps per mm you have (using 1mm/turn threaded rod makes that easy, it’s just the number of steps per turn).
      5. Tell GRBL how fast to move by default (100mm/min is a safe starter)
      6. Manually move the machine to the middle of its travel in all axes
      7. Power up. Hover one fringer over the reset switch in case things go wrong
      8. Type G01 X1.0 and your X axis should move 1mm
      9. Swap any pair of stepper wires over if an axis moves in the wrong direction

      Hmmm, now I write that, there’s more to it than I remembered. I’ll write it up properly. It’s not too bad though and so rewarding when you get the thing moving properly

      My only other bit of advice is build limit switches into your machine, or have something that will slip before the machine damages itself. You can guess how I know that :)

    • grumpygeek says:

      Actually setting up the control software for the machine (LinuxCNC or Mach3) isn’t too hard if you have a board that is known to the software, tuning isn’t that bad either if you aren’t dealing with an axis that uses dual motors (unlinked/no stall feedback) to drive it, that is the only real stress I have had with building 5 machines in 5 years.

  8. dave says:

    My god, that’s slow. While it may be a great way to win a bet, it looks like any real CNC job is going to take entirely too long. Also, with a feed rate that slow, you can guarantee that the cutter will burn and melt whatever you are trying to cut. It’ll also experience very short tool life due to the heating of the cutter. I suspect that the marler will also dry out before completing a reasonable sized drawing so it likely isn’t very good for that either.

  9. Why not using DC motors and color-coded wheels ? With threaded rod system, it could be really faster and still have decent precision no ? I’m just about to try to do the same build with dc motors.

  10. macona says:

    “if you aren’t yet enlightened with a Linux OS.”

    Enlightened? Like Buddhism where you have to put yourself through hell to reach enlightenment? Yeah, that sums up linux pretty well. I am in the middle of doing a LinuxCNC install and it is fighting me every step of the way.

    Where Apple has “It just works”, Linux has “It just works if you tweak this in the command line here, recompile this, and reconfigure that.”

    I still maintain linux is worth every cent you pay for it.

  11. robomonkey says:

    I had an idea to PVC, but time is my enemy. The only thing I’d pass on to this guy is using PVC as your glide. The wall mount connectors are a good idea, and would still be used. If you use a 3/4 PVC, it fits perfectly around 1/2 pvc and slides very nicely. Attach the wall mounts to the 3/4 pvc without modifying them and there you have it.

    gonna try this.

  12. cplamb says:

    I wonder how long the metal on PVC linear bearing surfaces will last before being too worn for use.

  13. Jim says:

    Anyone who is interested in building their own CNC should check out CNCZONE.COM. There are hundreds of DIY cnc builds. Many using wood,angle iron, metal conduit pipe, skate bearings and treaded rod. Stuff that can easily be purchased at the home center, hobby shop. There are also DIY CNC examples using expensive linear rails, ballscrews, and extrusions. Homemade CNC’s that can be as good or better than some commercial versions selling for several thousand. Lots of information and the guys there are usually very helpful.

    Before I built my very first CNC, I spent many hours reading that site.


  14. This is absolutely brilliant!!! I know that it is slow, but it could bring the price down and create more interest for CNC in general. I really like the design.

    • pcf11 says:

      It doesn’t have to be slow. They use a fine pitch lead screws, 20 threads per inch, and that slows things down a lot. Their stepper motors are somewhat undersized as well. They don’t say what power supply they’re using but I’m going to guess some lousy ATX conversion delivering 12 volts. That low voltage would have severe adverse effects on performance. TB6560s are a bit tricky to get to perform very well in the best of circumstances. I’ve a bit of experience working with the TB6560 driver ICs as I’ve built my own motor drivers with them.

      I’m getting 72 inches per minute travel out of mine addressing issues as best as I can. Which is still somewhat slow, but not terrible. I’d hazard a guess their machine probably doesn’t break 6 inches a minute travel speed. That’s slow! But like I said it doesn’t have to be.

      OK I just watched the video, maybe they can’t even do 6 IPM.

      Here watch this for something a bit more lively

  15. sqelch says:

    awesome, but pvc will be a poor choice for longevity.

  16. Gerson Silva says:

    excellent idea, what are the dimensions of the machine?

  17. modhappy says:

    To all those who say my machine is slow. . .
    your right in that particular video it was slow i was really excited to have something together and it was set at 2.5 inches per min. but it is fully capable of 60 inches per min and it it cuts thin plywood with an 1/8 bit. I will send HaD an updated video soon. . keep a lookout :)

  18. wmatl says:

    Hmm, I need to go dig through the local big box store. I had not seen the corner pieces like those. Never would have thought about using pvc for a CNC. I like it.

  19. biosehnsucht says:

    My first thought was: “What’s with the cordless phone? Is he using some kind of crazy DECT-based wireless control?”

    I mean, really … surely its not a normal phone sitting back there, impossible to reach. It must be hooked up somehow! :D

  20. Squirrel says:


  21. jp says:

    Awesome post and comments!! Thanks

Leave a Reply

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

You are commenting using your 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,441 other followers