Let's Make Robots!

DIY CNC router project

04/06 Update

Motors and driver chips arrived in a package with some stuff for other projects today. Can`t find much information about the motors online and they have some marks on the body but they should work great. I`ll breadboard a circuit up to test the motors later.


 I drew up a base and gantry in sketchup. Both are made of 15mm MDF. I went through a few different versions of the Y and Z axis trying to waste less space and make it more resistant to inaccuracies in my cutting. Originally the Y was 2 steel bars with adjustion blocks but I couldnt find anything suitable for rails at my hardware shop. Currently it looks like this but could change at the drop of a hat.



This was my first attempt at the Z axis carriages. Turned out pretty good and rolls as smooth as butter on aluminium.



There will be a new blog post when I actually start building the base.


04/05 Update

Slides and bearings arrived! Its actually all recycled stuff but I could never tell from the condition its in. The slides are high quality super solid draw slides with ball bearings. Fully extended and not even a fraction of a mm slop - Im a happy chappy :D Of course they only extend 200mm but its enough for my purposes. 



I only got 10 ball bearings this time because I wasnt sure if they would be too small. I think they will *just* do so I`ll have to get a bunch more. At the back is one with an m5 bolt through.



So the weather is getting warmer here and I`m finally finding the motivation to get out from under my cosy and warm kotatsu to do some building when I notice the parts website I usually use has some big stepping motors for cheap. What else does some do with steppers but build a CNC machine of course! This will be my first but I`ve been checking out peoples home made machines for years always dreaming of one.

The ultimate goal is to have the machine cut foam, plastics, wood and aluminium and eventually add a 4th rotational axis so I can engrave pens and cups etc. The bed will be small, maybe a travel of 300x200mm x/y and the z axis about 200mm, that way I don`t have to worry too much about sag and I can send it home in a crate when I move back to Australia in november.

Ideally it will be a moving gantry style so if I want to do longer stuff I can just have it hang over the sides. The bed will be made of MDF and the frame made of 20mm square aluminium tube. I have some used slides in the mail for the gantry to sit on and a bunch of bearings to make a Y rail with. I`m still thinking about the Z axis. I want to get my hands on these slides before I do too much planning.

For now it will all be driven by hardware store threaded rod and some nuts pushed apart with a springto get rid of backlash. The motors should have oodles of torque that they can deal with it. If the rest of the machine turns out OK I can upgrade to acme or ball screws in the future.

I`ll cook up the electronics myself too (anything to keep the cost down) and drive it with an atmega32

This is what I`ve ordered and am waiting for..

2x 300mm linear slides

10x 13mm bearings

..and what I`ve still got to get..

3x 10kg/cm Unipolar steppers

3x SLA7026M integrated 3A driver


current sense resistors


Photos will be coming when the parts arrive.

Has anyone here built a CNC? What else do you guys think I need? besides cables/connectors/limit switches etc.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Nicely done!

You have some very heavy duty motors there. 

Looks like a pretty standard design. The weak point is the drawer slides. They are nortoriously sloppy under force and not suitible for fine work. Drill rods and bronze bearings are better, linear slides are best (but very expensive). Also, consider thebuild up of debris inside the slides. For all the building effort, consider upgrading.

Be very exact when drilling the holes for the bearing, again inaccuracy will haunt you later. When building a CNC, there are no dimensions that are just "good enough".

Check out the Fireball CNC for some inspiration. http://www.probotix.com/FireBall_v90_cnc_router_kit/ 


So what is the general design you will go with? How will the sliders integrate?

Also did you decide on the motors/controller?

I put the sliders on the X axis because I thought with the whole moving structure stuck to the top, that that axis would flex the most and I`m absolutly sure these sliders can take it. I`m still debating on whether I should just get 2 more slides for the Y axis to keep the building simple.

I went with the motors and drive chips from the original post. I`m going to try the arduino g -code interpreter from the reprap project for the controller because my PC doesn`t have a parallel port. If that doesn`t work I will get a 2nd hand laptop.

I have to wait until the weekend to cut the MDF at the classroom near me cause of the noise in my apartment. Damn neighbour complains if you so much as sneeze. 

I have got all the bits to do a similar, CNC Mill, mainly to do small fittings and PCB's. I am using Geko G201's for drivers and EMC software for control.

I have the parts, but lacking in time.


I`d love to be able to throw down $1000 for a kit of the good stuff but thats more than we can afford right now. Plus it`s only my first machine so I wanted to make it myself and learn how they work in the process. If I find myself using it all the time and wishing it was more accurate or powerful I`ll have to beg steal or borrow the money from my wife.


Take a look here http://letsmakerobots.com/node/6627 but looking at what you ordered mine is in a totally different league :/

Limit swithes are a nice addition, but you can go without, for now I don't have them installed, might have to use some in the future.

Oh yeah and get the right tools, or find someone who has them, or you will get head akes pretty soon D:

I didn`t see your CNC before! AHHH I wish I had a drill press too. Only having a hand held drill and saw makes it really hard! I`m going to measure up the parts before hand and when I buy it from my hardware store ask if they can cut it to my sizes. I wish I lived next to CtC too >:D

How did you stick the angled ball bearing bit to the gantry? I couldn`t tell from the pictures. And how big are the bearings?

Also what chip did you use for the drivers?


The sides of the gantry are cut at a very rough 45 degrees angle on both sides to get from a straight flat margin a margin like that < (hope this explantion helps). Then the aluminium corner is glued in place.

The bearings are standard 629 bearings, the only ones I could find at the time, then I found inline skate bearings (ABEC7) which are smaller and maybe better suited because the internal diameter fits almost perfectly M8 screws (629 are pretty loose and I used some tape to fill the gap, worked well though).

The drivers are designed around an l298 driver controlled by an attiny2313 so I'm able to control the motors trough I2C, here I have posted the schematics http://letsmakerobots.com/node/6618, if you want I can post the eagle files and the software for the motor controller.Oh but your motors are much biger than mine at 3 amps my driver won't do.

Edit: Just took a quick look at your 3 A drivers datasheet, I almost positive you could adapt my board to use it instead, and chage the protection diodes to some with can hadle 3 amps.

Also  the steppers you chose are pretty nice because you might be able to get better torque out of them if needed by wiring them bipolar. 

My bearings are 13mm dia actually a bit small so I`ve got to mount them right up close to the edge of the aluminium angle. How did you cut the angle on the wood? Unfortunately I don`t have a router so I`m going to nail lots of sandpaper to a long bit of wood and sand the angle in.

I like the boards you made and the fact that they are I2C. Did you work out half stepping for them? Do you think I can take a look at the code for it? I think that driver chip I found only works for unipolar motors. If I want to wire them up as bipolar I`ll need a new chip. But let me get this right.. if I use the 2 coils in series as a bipolar motor, I will get about double torque but only half the step size?

The bearings are pretty small in diameter, I'm not sure about the other specs they are in japanese :) The diameter is not the biggest issue, much more important about them is how wide they are and the inner diameter. If they are not wide enough let's say less than 5 mm wide you might get in trouble because when the weight and the forces applied come in to play, the bearings may just start bending the aluminum corner and you will start to loose precision.

For the angle I have tried with different methods:

- using the hand held pendular saw with it's 45 degrees cutting feature -> total failure and mess, you won't get a straight line

- using some other hand held cheap disk saw  -> failed also probably a good one would do

The method I'm using now with the best results so far is as follows:

- draw parallel lines at 3 mm from the edge on both sides of the edge 

- sand down the corner until I reach both lines 

- ta daaa - almost perferct 45 degress 

The sanding is done with a Dremel tool I bought recently, but with some patience you can get the same results as you described.

 Now for the motor controller, yesterday I just had a very quick look at the datasheet of your driver, I completly missed the fact that it is a specialized stepper driver. Strangely enough except for the pwm and current sensing part it does not really implement anything special in hardware to actually justify it's "unipolar stepper driver" nomination since all stepping has to be implemented in software. So except for the bigger current is more or less the same as l298. So you could choose smaller motors to start with (1,5 A or so) and just go with l298. 

For now in the c code for the attiny2313 I have implemented both full stepping and half stepping but the latter is commented out because it increases the compiled size  overthe capacity of the attiny2313 (2k). The TWI library which let's the attiny act as an i2c slave is written by some guy at avrfreaks.net, I only used it as it is, when I will have some time I will search for a smaller implementation.  

As far as I can tell wiring a 6 wire unipolar as 4 wire bipolar (just leave out the two commons) does not affect the step size just the torque because you use two coils at a time instead of one for a step. Not sure how this affects the current draw though. 

Since I cannot attach the files here I will just create a blog entry for the controller and attach them there.

Here is the entry http://letsmakerobots.com/node/6967