The original plan for my CNC machine was to use an Arduino to take care of the timing-sensitive task of delivering pulses to the stepper drivers. A few things have happened to that plan.
First off I discovered that the power rating of the EasyDriver 4.2 boards is probably going to be a bit too low. The EasyDriver can deliver 750mA to each phase of the motor. This was probably enough for the smaller motors I got from Sparkfun, but the motors that are mounted on my CNC rig draw significantly more current than that so I needed somewhat beefier boards. I can't remember where I got the beefier boards, but they are in the mail by now and can deliver 2A per phase.
Second, I have been skimming the docs for EMC2 and there does not appear to be any easy route to getting the software talking to an Arduino that just takes gcode as input. The easiest way forward seems to use the parallel port to deliver pulses generated by EMC2 to the stepper drivers. The good thing about this is that it means I can benefit from the rich functionality in EMC2. The bad thing about this is that using the parallel port seems to be fraught with its own set of challenges. From the fact that it makes the system very timing sensitive to stories about ratty parallel port interfaces that produce jitter or just fire off spurious pulses when idle.
I think I read something last night about someone using an Arduino to create a lower level protocol and much simpler software aboard the Arduino -- which interfaces with EMC2. I would feel more comfortable with having the Arduino interfacing to the stepper drivers. The parallel ports sound dodgy. I am hoping to find more information on this.
Also, I need to build a PSU and figure out how I want to control the spindle. For now I will probably have manual speed control, but eventually I would like to be able to control spindle speed from software.