Go Down

Topic: My first CNC machine Arduino Mega controlled!!!! (Read 53385 times) previous topic - next topic


I still have some issue. Check your PM. And thx for the code too  ;D


Feb 03, 2010, 04:29 pm Last Edit: Feb 03, 2010, 04:29 pm by aventgps Reason: 1
i think that the way i made the code and the overall proyect is the most simple option using arduino..... when you have the machine completed you will learn a lot from it and will start many improveents on your way to  make the things you want......


I just had a thought. With step/dir motor controllers, you could use one pin for the direction on all a three axes. Since you can only pulse one of the step pins at a time, the other motors wouldn't be affected, and you can run three motors off of four digital pins instead of six. This might be a more efficient method than multiplexing limit switches to squeeze a little more out of the available I/O.


You know what? There doesn't seem to be any half-decent software for running a cnc from a Mac :(

Well, the more I see about this reprap stuff, the cooler it sounds, and it runs on cross-platform OSS, so I've decided to build mine as a repstrap first, then see about adapting that to add milling capability (probably as some hack using the reprap software and negative space).



I decided a few weeks ago that I wanted to learn how to build a CNC machine, so I got some EasyDriver 4.2 cards and some stepper motors from sparkfun to start playing with the motor control part.  I already had an Arduino Mega and various bits and pieces.

As for the rig itself I decided to make it easier for myself and I got a Zen Toolworks 0001.

I know next to nothing about the cnc software, so I have to figure that part out.  The assumption right now is that I want to use the EMC2 package so I can run things on Linux.

The plan is to use the Arduino to control the steppers (through the EasyDriver cards), so I assumed I would have to write a g-code (serial) interface for the Arduino.  I looked at some simple code-snippets I found on the net and things didn't look too promising for a while.  (I get wary when i see a lot of wait-states in normal program flow).  I started thinking about writing a scheduler for the Arduino so it could do proper timing of the stepper pulses and still have lots of capacity for doing efficient serial communication and possibly drive a display.

However, I then stumbed across the grbl project and some cursory inspection of the project suggests that the guy seems to head in a good direction.  So when I get some free time the plan is to sit down and understand his code.  I hope to be able to contribute.

As I said I have not yet looked at the CAM software, so that I still need to figure out.  I am hoping that if the Arduino can serve as a gcode interpreter, the realtime demands will be low enough (absent?) for me to run Linux in a virtual machine on my Mac.

Also I need to figure out the design part:  how to get 3D designs from sketchup and into the CAM software.  I am somewhat familiar with Sketchup (mostly used it as a tool when remodeling houses).

Anyway, the plan is to build the Zen Toolworks rig this weekend.  Next up will be to check out the grbl code and set up a build environment on my Mac or a Linux machine.



Oh, btw, my blog is at http://blog.borud.no/ . I occasionally blog about the CNC project there.



Here are some pictures from my Zen Toolworks CNC build.  I built the machine last night with a friend of mine.  I also posted these on my blog along with some comments: http://blog.borud.no/2010/02/cnc-build.html


At $300, that's tempting. I've realized that I don't have the tools to produce the precision bits that I need to build a machine that can make those types of precision bits. I've looked at some higher-end parts than I was initially considering, but just a full set of pillow blocks alone would be about half the price of that kit (those things are seriously overpriced). Also, it doesn't come with electronics other than the motors, so I'd still have to do the arduino stuff that I'm really more interested in anyway.

I'm worried that its leadscrews might make it move too slowly to be an effective repstrap. Though, I suppose it would only have to be one long enough to make me a set of Mendel parts, and I think I read that some of those can be milled faster than they can be printed.


My plan was to drive the steppers with the EasyDriver 4.2 cards.  Someone pointed out that the NEMA 17 motors that came with the machine may be a bit too large to drive from EasyDriver 4.2.  Anyone have any experience with these cards on equivalent motors?

If it turns out that the EasyDriver 4.2 is a bit too undersized, are there any equivalent drivers someone can recommend?  (Just a schematic would do as well.  If I have to build it myself it'll just add to the fun :-) ).



I have some NEMA 17 motors that I've tested lightly with them. They seem to work, but I haven't tried it under a real load. These are also 400-step motors (most NEMA 17s I've seen are 200 step), so that may be a factor. Apparently, the NEMA standards refer only to the dimensions of the motor's case, and what's inside could vary pretty widely, so they may be able to drive some NEMA 17s but not others. Mine are rated for .67A/phase for bipolar operation (this appears to be lower than most), so they should be fine. If there's a model number on your motors, you should search for a datasheet. If you don't need microstepping, a chip like the A3982 on the makerbot driver board should be a better choice.


Yes, from what I understand the NEMA 17 designation only says something about the dimensions of the motor case.

I figured I'd just hook up the EasyDriver and run the X-axis back and forth for a few hours or until the board blows up :)


I suppose that's one strategy. If you put a heat sink on it, you can probably reduce the chances of the magic smoke escaping.


Feb 23, 2010, 04:52 pm Last Edit: Feb 23, 2010, 04:53 pm by jgjosete Reason: 1
You can also get a motor driver that has controllers for all all 3 motors on one board.

I am currently building a 3D printer and got a complete kit that includes a very nice motor driver. Here is the link:


You can buy one fully assembled or you can build your own. Everything is open source so all schematics etc. are available online.


IT is used in the REPRAP http://objects.reprap.org/wiki/Mendel and the CupCake http://www.makerbot.com/ printers.


The reprap motherboard you linked to does not have stepper drivers onboard. You have to connect it to a driver board for each stepper. It is designed to be used with three of these: http://store.makerbot.com/electronics/assembled-electronics/stepper-driver-v2-3-fully-assembled.html


Sorry about that!  ::)

I linked to the "mother board" which is essentially an Arduino (Sanguino). The stepper driver is at the link you provided. and you will need one for each motor.


Go Up