# General > IoT, IoE, and Maker Forum >  DIY CNC Router

## RobDog888

I needed a CNC machine but dont have the $10,000+ for even a small one so I stumbled across this DIY article and got re-motivated. I figured before that I may be able to make a manual "CNC" but that wouldnt suffice with my time savings and automation needs.




Goal: automate the routing of desired logos or shapes both positive and negative to create a "puzzle" of pieces that fit precisely together out of different materials. They will then be epoxied and in-laid together. The end result will be, for ex, a board in one color/material with a business logo in-laid in another color/material.







I was thinking of something like this one better but a dremel may not be the best router for the job because the material being cut will be wood, sheet metal, fiberglass and carbon fiber. A carbide or diamond tipped bit will be required and high rpms. In the above video the movement seems a bit choppy?






Todos:
determine the best board (arduino, netduino, etc) that satisfies all requirements.cutting tool: dremel or router?
needs to be mounted precisely and repeatedly for when servicing needs to be performed it can be remounted accurately.size of largest job to be cut: 2' x 4'
may make it larger to be able to cut multiples on a single sheet without reloadingneeds dust collectionfigure out how to convert or design the templates in the required format(s)
image logos and text converted into "cnc" instructions
*More to be added as the project evolves

Any input or suggestions are welcomed.  :Smilie:

----------


## Nightwalker83

CVMichael might know!

----------


## kebo

I would think an Arduino would have plenty of horse power for this, but I'm not sure if it would have enough memory. That really depends on how large the cutout patterns are though. I suppose you could send the steps to the Arduino from a PC as needed too That would help memory consumption. If you do use an Arduino I would suggest using use a Mega. The video shows a Uno, but I would better a project like this would push an Uno's memory limits. I've had 2 of these running for a couple of months now 27/7 without issue. If you do use the Arduino make sure you download the VMirco addon for Visual Studio.

As far as the cutting tool goes, use the smallest/lightest thing you can. The heavier it is, the biggest stepper motors you'll need and the bigger driver you will need for them. I don't have any stepper motor drives, so I can't help much with that.

Looks like a fun project.
GL
kevin

----------


## CVMichael

Hi, I just saw this thread  :Smilie: 

What do you have so far? The video and first image I see it is from the DIY article, what about the second image? is that what you built?

When I made my CNC, I did not know anything about G code, I wrote my own C code on a microcontroller, and I made a VB.NET app that was sending coordinates to the microcontroller where to move. The main reason why I stopped working on my CNC was because I did not know how to create my designs, and convert them to the coordinates to for my custom made .NET app.

Now it's a different story, since I got my 3D printer I learned quite a lot, and I would like to take my CNC out of the locker room (it's been gathering dust for a few years). But I still have the problem with space (everything is in my living room). I really have to move to a bigger place (more rooms)! I would really like to have a basement for myself  :Smilie: 

Regarding to your To-do's:




> Todos:
> determine the best board (arduino, netduino, etc) that satisfies all requirements.cutting tool: dremel or router?
> needs to be mounted precisely and repeatedly for when servicing needs to be performed it can be remounted accurately.size of largest job to be cut: 2' x 4'
> may make it larger to be able to cut multiples on a single sheet without reloadingneeds dust collectionfigure out how to convert or design the templates in the required format(s)
> image logos and text converted into "cnc" instructions
> *More to be added as the project evolves
> 
> Any input or suggestions are welcomed. [/color]


I think Arduino is fine... What you need is an interface from Arduino to a MiniSD card. This way, you can write your G file(s) to the MiniSD, and have the Arduino execute the instructions in the file. Since the code on the Arduino is static, you don't have to worry about memory space. My 3D printer works exactly the same way as a CNC, in fact, I could remove the Extruder from it, and put a dremel, and voalla, now I have a mini CNC... (the only problem is that the 3D printer is made for speed, not strength (it has belts connected to stepper motors, instead of threaded rods). Someone already has done it on the same 3D printer I have: https://www.youtube.com/watch?v=0N_2GW-jZ2k

For my 3D Printer I am using "Marlin", source code is free/open source. It's made for 3D printing, but at the same time it's just a G-code interpreter... so I don't see why it can't be used for a CNC... if you search on google for "arduino gcode interpreter", you should be able to find other source code specific for CNC.

As for cutting tool, it would be nice if you could mount a router, hopefully the frame is strong enough. As for "servicing needs to be performed it can be remounted accurately", I can't think of a way to do that without calibrating every time.
Normally, when you change drill bit, you have to recalibrate the Z axis by using a touch probe, or you connect one wire to the drill bit with an alligator clip, and the other wire to a small piece of metal on the bed of the CNC. Then move the router (X & Y) on top of the metal plate, and slowly move the Z position down, until the drill bit touches the metal plate. The 2 wires can be connected to the Arduino for an automatic adjustment (if the software can do it), or for manual the 2 wires goes to a beeper, and move the z axis by hand. The X & Y position you have to zero depending on how your material is set on the bed, so that is manual work also (or again with a touch probe if you have one).
Check this: https://www.youtube.com/watch?v=GCtYIT86WOU


For:



> figure out how to convert or design the templates in the required format(s)
> [LIST][*]image logos and text converted into "cnc" instructions


What format are your designs?

When I made this: https://www.youtube.com/watch?v=m2CYttY_xPg
I took an image of mickey mouse from a google search, something like this. In Corel Draw, I set the image as the background, then manually I draw lines (1 pixel wide) on the outline of mickey mouse. When I removed the background image, I was left with the drawing as line objects in Corel Draw. It is important to have the lines as 1 pixel!
Then I exported the image to Bitmap. I wrote a VB app that opened the bitmap as an array. I wrote a recursive function to search for a black pixel (whatever line color), when found record position as X & Y, make the pixel same color as background, then call itself with (X+1, Y) & (X, Y+1)... etc to find all the other pixels in that line. Then repeat for other lines. In between lines, I made the Z go up, move to new position, then go back down. I stored the positions in a binary array, and sent that binary data to the microcontroller on the CNC using a COM port. Using this method you can even generate G code by the way.

----------


## SJWhiteley

I've been thinking about this for a while. I think the difficult thing is the mechanics - you can always code and re-code the controller  :Smilie: 

I intend to use 80/20 aluminum framing material. I've used it for a few projects, and while not cheap, isn't too expensive, either (unless you make a mistake in design...). It is kind of designed for this kind of thing, and has linear bearings and wot-not for just this kind of work. Has the rigidity to hold a full blown router, too.

----------


## dz32

[...]

----------


## CVMichael

How's your progress on your CNC ?

My CNC was in the locker room for a few years, now it's back  :Smilie:  I removed all the electronics, left only the motors. I am using an Arduino MEGA, with a RAMPS 1.4 shield. This is for a 3D printer, but I made a few changes in the code to make it work for my CNC. Instead of the motor drivers that RAMPS 1.4 comes, I connected to more powerful stepper drivers. I am using the "D42" from here: http://www.motiontek.ca/StepperDriver.html , they can give 4.2 Amps to the motors.

I also bought a 1.25 HP router that I plan to mount on my CNC. I will use my 3D printer to make a mount that will fit on my CNC. Now I have to get some End Mill bits.

The reason why I really want to get my CNC to work again is because I want to make a Filament Splicer similar to this: https://www.youtube.com/watch?v=uecY5ikWdCI
The part that joins the filaments needs to heat up, so I have to make it from aluminum.

Anyways... I am curious how your CNC is going  :Smilie:

----------

