CNC - Computer Numerical Control

This is my first CNC, build from two old optical drives and a small servo: CNC 01 Thanks to Norbert for a briliant tutorial btw, and if you intend to build your own CNC I highly recommend having a look at his site.

The second one I'm building, is a bit larger. And the plan is to have three switchable heads so it can draw, carve and print 3D objects. I have made a 3D model using Blender and uploaded a preview to my Youtube channel:

When I'm done, I'll make a complete list of materials and tools used in this project.

The final result is comming along slowly since I'm not used to work with metal and required some new tools for the job, but I have the first axis working as shown here (upside down): CNC 02 As you might notice, there are a few deviations from the Blender model. It wassn't completely wasted time to make the Blender model first thou, it gave me an idea of what materials I was going to need and I was able to predict some of the workflow.

X and Y axis hardware finaly working, and so far I quite pleased with the result: CNC 03 And now for the fun part, wirring it all together and writing software :-) I use two stepper motors for X/Y and untill I get a third stepper, I'll just use a servo to control the Z axis.

Almost done with my CNC. X and Y axis working with minor quirks, now I just need the last stepper motor to complete it. It's controlled by GRBL and Universal-G-Code-Sender running on Lubuntu.

  • Arduino UNO
  • A4988 Drivers
  • Old PC-PSU
  • NEMA17 42SHD0217-24B
ball bearings:
  • SKL-6200-2RS (ID)10mm x (OD)30mm x (thickness)9mm
  • 624VV V groove (ID)4mm x (OD)13mm x (thickness)6mm / 4mm(width), 1.5mm(depth)
metal frame:
  • plates
  • angles
  • 30mm x 30mm square tubes
  • 10mm threaded rod
  • 8mm rod
  • 8mm side shaft support
  • 4mm, 5mm and 10mm bolts and nuts (and plenty of washers)
  • soldering iron
  • drill (bench drill for a better result)
  • threading tool
If you plan to weld the frame together, you'll need some tools for that too, but bolting it together is also an option. The most expensive part is without doubt the stepper motors. The 8mm steel rods also cost quite a lot, but as I discovered making this project, steel isn't cheep but it's often thrown away as trash, so if you can find an old training bench or something similar, you can build the frame for next to nothing.

Ball bearings are a world in itself, but like many other things, they too can be found relatively cheap on ebay, I bought 10 4mm for about 6£ and 20 10mm for about 20£, but if you can also take them from an old skateboard or rollerskates.

If you are comfortable using a soldering iron, you can build the A4988 drivers yourself, you can even build the Arduino yourself, but unless you have a spare decent 12V transformer laying around, the cheapest way to get a power-supply is to mod an old AT/ATX PC-PSU. I bought the A4988 drivers on ebay for £0.99 and it came with a heat-sink, so theres not a whole lot to save building it yourself, and it's the same thing with the Arduino.

My PSU is build from an old ATX PC-PSU and I'll upload the procedure to my site one of these days.

I made this neat little PCB on a matrix-board to hold the motor-controllers and the Atmega 328 circuit: CNC control I also switched from using my old labtop to a Raspberry PI, that way all the electronics can fit in a nice box.