GRBL Capabilities

I've been curious about this for a few months now, but I haven't really got past buying my steppers and driver boards.

It seems to me the critical requirement for CNC is to maintain the relative positions of the various stepper motors so that the tool tip will follow the intended path. I don't see any problem programming an Arduino to do this. Whereas I can see that the latency (I thing that's the correct term) inherent in the USB system might not be able to maintain the relative positions if stepper motors are controlled by pulses sent directly over a USB connection.

And it seems to me that speed is a separate matter. On the one hand there is the maximum speed at which the "computer" can generate pulses for the motors and on the other hand there is the speed at which the motors are capable of moving without losing steps (not to mention the speed at which the tool can remove material). I assume that an Arduino Uno or Mega is fast enough for Home/DIY CNC.

One of the things that continues to intrigue me is the general decision (inherent in GRBL and other Arduino CNC / 3D printing programs) to interpret the GCode on the Arduino rather than on the PC. Doing it on the PC would seem to make the job of the Arduino a great deal easier thus allowing for fatser speeds.

...R