Arduino Powered CNC Router




About: A geek with machine tools. I just like creating useless stuff, usually powered by steam.

I was back in the machine shop at my workplace and in the scrap bin I found eight ball screw slides. The longest has about a 23" stroke.I asked my boss, and he let me take them.After some investigation, they've been sitting on a shelf for years and they just decided to scrap them.

So I decided to use four of them to make a CNC router.

Step 1: Building the Frame

Anyway, except for the 4" aluminum channel and wood I purchased for the Y-axis slide mounting, I'm built this thing with materials I have laying around and without any plans. It's just kind of fell together as I went. (I'm amazed at the quantity of aluminium barstock I've accumulated. Some of this stuff I didn't even know I had).

The first step was to build the frame rails which were 4" aluminum channels. To these I mounted two of the ball screw slides.

Step 2: Table Top

To make the table top, I used 5/8" thick wood planks often used for shelving. I cut them to the proper width then bolted them to the frame with 1/4-20 bolts.

Therefore if one plank gets damaged, it can be easily replaced.

Step 3: Y-Axis Vertical Rails

I clamped two pieces of 3/8" thick x 4" wide aluminium barstock together. I then drilled out the holes for mounting. In this way I created exact mirror images of the plates.

Then I drilled/tapped the blocks which will mount the X-axis rail.The to see my progress, I C-clamped the X-axis in place. Later transfer punch the mounting holes in the slide to the blocks. Then drill/tap the blocks to mount the rail permanently.

Step 4: Electronics

The electronics can be started at any time, but for a change of pace, I started work on the electronics.

I purchased the largest junction box enclosure I could fine at Lowes. Unfortunately what looked big in the store wasn't so big with all the components I needed to install...

  1. Two 36vdc / 10 amp power supplies
  2. Four stepper motor drivers
  3. One Arduino Uno with a screw shield
  4. Terminal screw block
  5. Power Switch

The box is deep, so I made a two layer box. Please don't laugh at the pictures, I'm not an electrician, but at least I did apply labels to the wires...

Step 5: Z-Axis Slide

Starting on the Z-axis slide

First was to make a plate to adapt the X-Axis carriage to the Z-Axis frame. Note that I added several extra holes in the plate. This allows adjustment of the Z-axis height.

The reason is that unlike many CNC routers I've seen on the Internet, I purposely kept the distance between the table and the X-axis slide shallow, about 7 inches.

The reason is threefold:

  1. The longer the side arms, the more deflection there will be in the final system.
  2. The slide has a 4 or 5 inch stroke, so I really didn't need much.I was somewhat limited by the material I had laying around.
  3. I could have added about 3-4 more inches, but see number 1.

Once the Z-axis was mounted, I started an adaptor plate to mount the Z-axis motor to the slide. The motor is way big for this slide, so I'll turn down the amperage to limit the motor.

Step 6: Router Motor Mount

Based on internet searches, people have been successful using a Bosch Colt router for this application, so I went the same route.

I need to make a collar for to mount the router. I have machine tools, so I make my own, but I know there are ebay sellers who sell mounts for this particular router.

Step 7: Drag Chain

This machine has many many cables to run for such things as motors, limit switches, motor power, etc. The best method to contain the moving cables is running them through drag chain. I got mine from an ebay seller.

Step 8: Cables and Soldering

Any project of this size and complexity will eventually involve things that just aren't enjoyable. I'm no fan of soldering wires, but its just one of those things that must be done. In all there are over 110 solder connections to make.

Step 9: Software

I won't go into too much detail here. But the software I used for the CNC controller is from the GRBL project. You can get information and how to wire the electronic components from their website.

For the G-code sender, I used software from the bCNC project. It's quite powerful, but any G-code sender compatible with GRBL will work.

Step 10: Testing

The video at the start of this Instructable was one of the earlier tests. This video shows a gearing system made with the router to give an idea of its capabilities. For a sense of scale, the ring gear is 18 inches in diameter.

FYI: The steam engine is 1/4 hp engine running on compressed air. This machine is for the 2017 Maker Faire season. At the faires it will be run on live steam.



    • Pets Challenge

      Pets Challenge
    • Sensors Contest

      Sensors Contest
    • Colors of the Rainbow Contest

      Colors of the Rainbow Contest

    7 Discussions


    Reply 1 year ago

    The bCNC software will generate the gcode. Otherwise you can program it yourself. There's other gcode generators out there. This is what CAD/CAM does. The software ranges from free and open source all the way to professional packages that cost thousands of dollars per seat.


    2 years ago

    That is quite the score with ball screws.

    I think I understand why people use GRBL but that is not a compromise that I am personally willing to make.

    2 replies

    Reply 2 years ago

    I have a mini-mill that I converted to CNC years ago. I use LinuxCNC on it. For this router, I went GRBL because I plan on selling it. The USB plug-n-play aspect is a selling point.


    Reply 2 years ago

    I see. Yes with free parts you should earn a tidy profit. You probably just could have sold the ball screws and made a bundle.


    Reply 2 years ago

    Yeah, I don't think I'll ever have that kind of luck again.

    If you're interested, I gave three of the slides away to a guy I communicate with on the HMEM forum. He's building a router that's going to be industrial quality.

    As for the last one, I'm building a quite unique bubble machine - Stay Tuned!