The idea of building a 3D printer came after observing that it is possible to reuse obsolete ink-jet printers and common inexpensive components (wood, threaded rods and bearings). This model is called Printrbot and besides being a commercial product (which can be purchased as a kit or assembled) plans and 3D models of its parts are available for download and 3D print (or laser cut). The RepRap project, focused on creating auto-replicable machines for use in prototyping and manufacturing, provides all the documentation required to use Open Source Software (running on Open Source Hardware platforms such as Arduino) to control this type of machine.

Citrus Juicer from Martin Piñeyro on Vimeo.

This sort of printer can create objects with a resolution of 0.35 mm, suitable for prototyping complex parts, being possible to bring it down to 0.15 by replacing the nozzle that melts the material (known as “hot end”). The increase in accuracy brings longer printing times. This machine produces objects by adding layers along the Z axis of the machine. It has a heated base, fundamental for printing in ABS (Acrylonitrile Butadiene Styrene). Another material that can be used in this sort of printer is PLA (Polylactic Aacid) and this material requires no heat in the base.

The machine has 5 stepper motors recycled from domestic ink-jet printers. Four of them are used in the X, Y and Z (the latter occupies two) and the remaining drives the extruder (mechanism that feeds the filament into the section which melts it).


The interface between the computer and printer hardware is an Arduino Mega with an accessory (shield) that allows handling the current (up to 5 A) required by stepper motors. The printing process begins with the generation (or download) a 3D model of the object to be printed. This model is processed by software that performs a digital slicing of the model producing the layer that compose the object . For each of these layers a sequence of instructions for the 5 motors and heaters of the printer is generated. The complete sequence of instructions for the printer is encoded in G-Code and communicated to the Arduino through USB. According to this instructions each motor moves the exact distance required displacing the nozzle (through which the material comes out) and controlling the extrusion in order to create the 3D object.

3D Printer