This page attempt to make some sense, in general, of how all the pieces fit together to create a RepRap.
However, if you want to skip all this stuff and get straight to getting your hands dirty then your best bet is to take a look at The incomplete reprap beginner's guide. In addition to that guide, you may also want to take a look at the links under the Models section below.
That being said, to get a higher-level overview, we must start with discussing the different models of repraps, then go on to the three main components of a reprap:
- the software toolchain
- the electronics
- and the mechanical body.
- 1 Models
- 2 Software Toolchain
- 3 Electronics
- 4 Mechanical Body
Here is a list of repraps and links with more details on how to build them:
- How to Build Darwin - The first RepRap Version I design, which is now legacy.
- How to Build a Huxley - The successor to Mendel (a.k.a. reprap III) it is still experimental, not-yet fully documented, and a more travel-sized Mendel variant
- How to Build a Mendel - The original RepRap Version II design.
- How to Build a Prusa - The faster to print, cheaper to build Mendel variant, using only common easy to get stuff (Start here if you're new to RepRap).
The software toolchain can be roughly broken down into 3 parts:
- CAD tools
- CAM tools
- Firmware for electronics
Computer Aided Design, or CAD, tools are used to design 3D parts for printing.
CAD tools in the truest sense are designed to allow you to easily change and manipulate parts based on parameters. Sometimes CAD files are referred to as parametric files. They usually represent parts or assemblies in terms of Constructive Solid Geometry, or CSG. Using CSG, parts can be represented as a tree of boolean operations performed on primitive shapes such as cubes, spheres, cylinders, pyramids, etc. Open source apps that fall into this category would be OpenSCAD, FreeCAD and heekscad
Another looser category of CAD tool would be apps that represent parts as a 3D Polygon mesh. These applications are meant to be used more for special effects and artistic applications. They also seem to be a little more user-friendly. Open source apps in this category would be Blender, Google Sketchup and Art of Illusion.
Most of the time 3D software apps save their files in a proprietary or application-specific format. There are very few interchangeable CAD file formats. The two most widely used interchangeable CSG file formats are STEP and IGES. The most widely used interchangeable mesh file format is STL. STL files are important because, as we will see below, they are used by CAM tools.
Mesh files cannot be converted into CSG file formats. However, CSG file formats can be converted into mesh file formats. Thus, if you're designing a part, it's a good idea to design it using a CSG CAD application.
Computer Aided Manufacturing, or CAM, tools handle the intermediate step of translating CAD files into a machine-friendly format used by the RepRap's electronics.
In order to turn a 3D part into a machine friendly format, CAM software needs an STL file. The machine friendly format that is used for printing is called G-code. It looks like early versions of Repraps used a protocol called SNAP but G-codes are what's used now. To Convert STL files to G-code, you have to use one of the following 3 programs:
The STL to G-conversion slices the part like salami and then looks at the cross section of each slice and figures out the path that the print head must go in order to squirt out plastic.
After you have your g-code file, you have to run it through a G-code interpreter. A G-code interpreter reads each line of the file and sends the actual electronic signals to the motors to tell the reprap how to move. There are 2 different G-code interpreters:
- A program called EMC which runs on your computer or
- the firmware on the Reprap's electronics
To send g-code files to the firmware, you need to either:
- Stick the g-code file on an SD card if the Reprap electronics have an SD card reader or
- Drip-feed the gl-codes one at a time over the USB port using either:
The main files use by CAM tools are STL and gcode files. CAM tools convert STL files into gcode files. The official STL files for Mendel are stored in the reprap subversion repository. To get a copy of these files, run the following commands in ubuntu:
sudo apt-get install subversion svn co https://reprap.svn.sourceforge.net/svnroot/reprap/trunk/mendel/mechanics/solid-models/cartesian-robot-m4/printed-parts/
This will create a directory full of STL files that you can then give to your neighbor that already has a reprap and they can print out the parts for you. You will also notice that this directory contains AoI files. These files are for Art of Illusion. It is the CAD application that was used to design the parts and then save them as STL files.
Reprap electronics are controlled by an inexpensive CPU such as the Atmel AVR processor. Atmel processors are what Arduino-based microcontrollers use. These processors are very wimpy compared to even the average 10 to 15 year old PC you find in the dump nowadays. However, these are CPUs so they do run primitive software. This primitive software they run is the Reprap's firmware.
Of the entire software chain that makes the Reprap work, the firmware portion of it is the closest you get to actual programming. Technically, the term for what you are doing with firmware is called cross compiling.
This process more or less consists of the following steps:
- install the Arduino IDE on your PC
- download some firmware source code from a website
- make some minor changes to the source code to specify what hardware you have
- compile the firmware using the Arduino IDE
- connect the controller to your PC via a USB cable
- upload the firmware to your controller's CPU.
After your microcontroller has its firmware loaded, it is ready to accept gcode files which have the machine-friendly instructions on how to print your part.
The following is a brief list of the most popular firmware:
For all available firmwares see List of Firmware
To compile and upload firmware to your arduino-based electronics, you use the arduino IDE that you can download from the arduino website.
The firmware files are usually PDE files. You open these with the arduino IDE which in turn sends them to the reprap electronics via a USB cable.
In general, all reprap electronics are broken down into 5 different areas:
The controller is the brains of the reprap. Almost all reprap controllers are based on the work of the Arduino microcontroller. While a lot of variations exist, they are exchangeable and basically do all the same. Sometimes the controller is a stand-alone circuit board with chips on it, sometimes the controller is an Arduino Mega with an add-on board (called a 'shield'). Find more at List of electronics.
A stepper motor is a type of electric motor that can be accurately controlled with the controller. Most repraps use 4 to 5 stepper motors. 3 to 4 motors control the x/y/z axis movement (sometimes the z axis is controlled by 2 motors) and 1 motor controls the extruder.
A stepper driver is a chip that acts as a kind of middle-man between a stepper motor and the controller. It simplifies the signals that need to be sent to the stepper motor in order to get it to move.
Sometimes the stepper drivers are on separate circuit boards that are linked to the controller via cables.
Sometimes the stepper drivers are on small circuit boards that plug directly into the controller itself. In this case, the controller will have space for at least 4 of these small circuit boards (one for each stepper motor).
Finally, sometimes the stepper drivers are soldered right onto the controller itself.
An end stop is a very small and simple circuit board with a switch of some sort on it that tells the reprap when it has moved too far in one direction. Thus, there's normally 6 of these: 2 for each axis. A single end stop connects via wires to either
- the controller or
- a stepper driver board.
The heated bed is an optional component of a reprap. This is what the reprap's plastic parts get printed onto. Without a heated bed, parts can have a tendency to cool down before the print is done and warp, as well as fall off the bed.
To see more details about reprap electronics, take a look at the List of electronics page.
When it comes to the mechanical body, it can be generally broken down into two parts:
- movement along the x/y/z axes
- the hot end or extruder
X/Y/Z Axis Motion
When facing the front of a reprap, X axis movement is side to side, aka left to right movement, Y axis movement is forwards/backwards movement and Z axis movement is up and down along the vertical plane.
Linear movement is genearally accomplished using one of 2 different methods:
- belt/pulley driven motion
- threaded rod or leadscrew motion
Belts and pulleys are good for fast/lightweight movement and threaded rods are good for slow but forceful movement. Most repraps use a combination of belts for X/Y axis movement and threaded rod for Z axis movement.
Belts and Pulleys
This is extremely poorly documented in the wiki but when it comes to accuracy, THE MOST IMPORTANT PART of your reprap is your belt/pulley combination. To get the best accuracy, you want a GT2 belt, along with a machined GT2 pulley that matches the exact bore size of your stepper motors (normally this is 5mm).
There are generally 3 types of belt/pulley combinations:
- These are metric belts and the pulleys themselves can be printed. Using a printed pulley will give you approximately the same results as if you use an MXL pulley/belt combination with the wrong bore size. These belts are harder to get in North America
- This stand for "mini extra-light". These belts are common in North America because they use imperial sizes. The distance between teeth is 0.08". You *may* be able to find pulleys that have a 5mm bore but it seems difficult. Most stepper motors have spindles that are 5mm in diameter.
- unlike the MXL and T5 belts, GT2 belts have round teeth with very low backlash. T5 and MXL are both timing belts so they have trapezoidal teeth and deliberate backlash to reduce belt wear and
noise for uni-directional applications. These are hard to find everywhere.
Not sure how this breaks down, still need to work on this section of documentation
For more info see Choosing Belts and Pulleys.