Arduino-Based 3D Printer/CNC

I'm looking to build a 3D Printer driven by a standard Arduino Uno. I know Adafruit has their V2 shield that can work with steppers (I've also noticed the grbl boards and the Arduino CNC board) and I've found multiple gcode interpreters and senders for Arduino boards. I've even seen code that makes an Arduino compatible with Repetier host. Can anyone tell me which compilation of boards and Arduino IDE-compatible software I should use? I'm pretty well versed with Arduino and 3D printing, but I can't seem to make sense of how to put the two together. I'm also very confused about how the gcode is delivered to the Arduino board.

Can anyone tell me which compilation of boards and Arduino IDE-compatible software I should use?

If the Arduino is doing nothing more than reading some serial data and telling some steppers to step, any Arduino will be capable. Having a Mega means having more memory.

I'm also very confused about how the gcode is delivered to the Arduino board.

Via the serial port is all that can be said is the absence of any details.

That motor shield would be avery poor choice for driving stepper motors. See stepper motor basics.

You will probably get more useful advice on the RepRap forum or on one of the CNC forums.

I have written my own Arduino and Python code to control a small lathe. I have low-current stepper motors and Pololu A4988 stepper drivers.

...R

The conventional model for a reprap is to use a mega and a Ramps board - the uno is a little short of pins, but you could certainly use it to make a slightly reduced functionality version.

In such a system, G-code is sent to the arduino via serial, from a PC running something such as Sprinter.