Build a RepRap

From RepRap
(Redirected from RepRap Options)
Jump to: navigation, search
You might also want to look at Resources . Perhaps some or all of that page should be merged into this page. (Discuss)

A RepRap 3D Printer is one that can reproduce it's own components and constructed using available materials using freely available information and software. This page attempts to help people wanting to know more about building a RepRap.

The RepRap project embodies a commitment to making 3D printing technology accessible and affordable for individuals around the globe. Founded on the principles of openness, the project advocates for the sharing of knowledge, designs, and innovations, fostering a collaborative community. By providing freely available plans and encouraging users to contribute to the evolution of the technology, RepRap empowers people to build and improve their own 3D printers. This ethos aims to democratize manufacturing processes, enabling a broader audience to participate in the creative and productive potential of 3D printing.

Getting Started

To start out with building a RepRap it's a bood Idea to choose a Model that has a strong community and good documentation like the original Prusa Mendel

RepRap Component Structure.

Many printers use similar components but have unique differences in their

  • software toolchain
  • electronics
  • mechanical body
  • extruder


Hardware

Complete Printers

As of 2024 these printers are in active development and well supported by the community. If you know of a printer that should be here please Participate

If you dont have access to a 3d printer to print parts for one of these printers, check out the RepStrap category of printers that can Bootstrap themselves without a printer.

See also the many Discontinued_Models that can still be built and have great ideas, but if you are starting out, maybe try one of the active projects above.

Components

The following is a list of the main components of a RepRap 3D printer. The list is not exhaustive, but it should give you a good idea of what you're getting into.

Controller

A controller serves as the intelligence behind a RepRap, overseeing motion and material deposition. It interprets instructions, typically in the form of gcode, and translates them into electrical signals or commands for the motion control system. In essence, the controller functions as the brain of the 3D printing process by taking prepared print files in the form of gcode and guiding the intricate movements of the machine to layer materials .

The history of RepRap controllers is notably shaped by the Atmel microcontroller, particularly the Arduino, which played a pivotal role in democratizing access to 3D printing. The Atmel microcontroller, with its open-source nature, facilitated widespread adoption and innovation within the RepRap community. The Arduino microcontroller with the RAMPS shield, in various forms, became a standard in RepRap controllers, providing a versatile and accessible platform for enthusiasts and developers alike.

As time progressed and the adoption of 3d printing progressed the function of the ramps shields were incorporated into specialises 3d printing control boards. The atmel 8bit processor has largely been replaced my faster 32 bit processors, much of the core functionality has remained the same despite the addition of many ease of use features.

See a list of Control Boards for more information

Stepper Motors

A stepper motor is a type of electric motor that can be accurately controlled with the controller. Most RepRaps use four or five stepper motors. Three or four motors control the x/y/z axis movement (sometimes the z axis is controlled by two motors) and one motor is used per extruder.

Stepper Drivers

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.

End stops

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 six of these: two for each axis (most firmware include software settings for max position, which allows for only the minimum position end stops to be required). A single end stop connects via wires to either:

  1. The controller.
  2. A stepper driver board.

Mp X/Y/Z

Axis Motion

Linear Constraint

Some common methods of linear constraint include:

- Hardened Linear rails with ball screw carriages - Aluminium extrusion with plastic rollers - Linear rod with linear bearing or bush

Belts and Pulleys

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.

When it comes to accuracy, the most important part of your RepRap is your belt/pulley combination. Current state of the art is the GT2 belt, along with a machined pulley that matches the exact bore size of your stepper motors (normally this is 5 mm).

For more info see Choosing Belts and Pulleys.

Threaded rod and leadscrews

Most RepRaps use threaded rod for the Z axis. The Z axis doesn't have to move fast (but it is better if it can move quickly) because it generally only goes up tenths of a mm at a time. Threaded rod is ok for accuracy and force. Repraps don't require force but some CNC machines, use threaded rod for all 3 axes. Since the Z axis threaded rods support the weight of the x-carriage it's a good idea to use high-strength stainless steel for the rod and nut, otherwise they will suffer greater wear on the threads and experience premature failure.

Print Bed

The print bed is what parts get printed on. The print bed may be stationary, like with the original RepRap Darwin, or it may move along one of the x/y/z axes. Most RepRaps have the bed move along the Y axis but some will also move along the Z axis.

The bed usually consists of two plates: the upper plate and the lower plate.

  • Upper Plate*

The upper plate is mounted to the lower plate on springs. The springs allow it to be levelled using adjusting screws. It also (I think) was designed this way because it gives a little if you accidentally ram the print head down into it.

The upper plate may or may not be heated. It's usually made of a PCB board or of metal. If the plate is heated, it will usually have a piece of glass held on top of it by bulldog clips.

Tape is usually applied to the upper plate to act as a print surface. It helps the extruded plastic stick to the bed and it also makes it easier to remove the part once it's done. The two most common tape types used are blue painter's tape and kapton tape.

  • Lower Plate*

Sometimes the lower plate is called the frog plate because the original mendel's lower plate kind of looked like a frog.

It provides a sturdy base that the upper plate can be connected to. If the bed moves along one of the axes, then the lower plate is directly connected to the mechanism that moves the bed. For the Y axis, this usually means belts or for the Z axis, this usually means threaded rod.

  • Heated Bed*

The print bed is what the RepRap extrudes plastic onto, where the plastic parts are built up.

While a heated bed is considered to be an optional component of a RepRap, it often becomes a necessary and integral part of operating a RepRap over the long-term because, without a heated bed, parts have a tendency to cool down too quickly. This results in warping of corners (as the plastic shrinks while cooling) or the part physically detaching from the print bed too early, ruining the print.

Heated beds operate on the same principle as a kitchen toaster. They're just giant resistors with a temperature sensor. See also:

Extruder

main article: Category:Extruders

The extruder is responsible for feeding filament through a nozzle and melting it as it's deposited onto the bed where the part is made. Historically some people reffered to the extruder as the "cold end" but this has fallen out of favor. The extruder is the part that is responsible for feeding the filament into the hot end. The hot end is the part that melts the filament and deposits it onto the bed.

Normally, the extuder is connected to the "Hot End" across a thermal break, insulator or bowden tube. This has to be rigid and accurate enough to reliably pass the filament from one side to the other, but still prevent much of the heat transfer. The materials of choice are usually PEEK plastic with PTFE liners or PTFE with stainless steel mechanical supports or a combination of all three.

However, there also exist Bowden Extruders which separate the hot end from the cold end by a long tube. Bowden extruders are much faster because they are much lighter.

This can get a bit confusing here People tend to refer to the cold end as an "extruder" also. In reality, it's only half of the entire extruder mechanism. The cold end is the part that mechanically feeds material to the hot end, which in turn melts it.

Popular cold ends are:

Hot End

See also Hot End Design Theory

The hot end is arguably the most complex aspect of 3d printers as it deals with the tricky business of melting and extruding plastic filament. In general, the hot end is a metal case with

  1. A resistor or heater cartridge that heats up so it melts the plastic (usually around 200C)
  2. A thermistor or a thermocouple which measures the temperature

The electronics basically monitor the temperature via the thermistor, then raise or lower the temperature by varying the amount of power supplied usually by some form of PWM

see Hotend comparison: Hot End Comparison and Hot End

Filament

Generally, people use one of two types of filament: ABS or PLA. ABS is strongly scented when melted and warps but is relatively strong whereas PLA is said to smell like waffles and is biodegradable. ABS fumes are detrimental to one's health. ABS will bend before it breaks whereas PLA is relatively brittle. Consequently, for delicate structural roles, PLA should be used, however, for other purposes, ABS can be ideal.

Software

The software toolchain can be roughly broken down into 3 parts:

  1. CAD tools.
  2. CAM tools.
  3. Firmware for electronics.

The RepRap project advocates for free software, but acknowledges that there are other choices.

Modeling (CAD)

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.

Free/Libre/Open Source Software (FLOSS) applications that fall into this category would be OpenSCAD, FreeCAD and HeeksCAD and more. Examples of proprietary and fully parametric CAD tools are PTC Creo (formerly PTC Pro/Engineer), Dassault Solidworks, Autodesk Inventor and more.

Typically in such programs the geometry is stored in a feature tree where the dimensions can be modified numerically, and the geometry is then regenerated with great precision. The geometry is a mathematical representation where, for example, a circle is generated from its center, radius and plane parameters (hence, "parametric"). No matter how much you zoom in, a circle is still curved, and the CAD program has no problem finding its center when you click on it. This can be quite beneficial when making drawings with dimensions between the circle and sections that need to be concentrically removed.

Some modelling software approached modelling with the use of 3D Polygon mesh. These applications tend to be used more for special effects and artistic applications. They also seem to be a little more user-friendly. FLOSS-apps in this category would be Blender and Art of Illusion. Proprietary tools are Autodesk 3ds Max, Autodesk Alias, SketchUp and more.

Furthermore, you can create forms with just a web-browser at certain websites, such as TinkerCAD.com (easy) or 3DTin.com (more sophisticated), those permit you to download the resulting geometry.

Some of the tools mentioned above also use parametric data to generate the geometries, but a lot just register the positions of the vertices of the polygons making up the models. Some use parameters to generate the geometry but then drops that data once the vertices are placed. A curve is thus actually an approximation, generated from a number of straight lines between points. As such, those tools are better suited for design where the precision of dimensions are less important than looks and ease of use.

If you want to print as less possible material as possible; design parts optimised by volume in function of strains, you may use topology optimization through non-commercial-use-only software such as Topostruct (see sawapan.eu website), BESO, or free-open-source-use such as Topy, a topology optimization software written in Python by the brilliant William Hunter (see google code topy page).

It might be useful to have a lattice engineering software, that will create a support of your part or fill the part to save material. One of the most used is Materialize Magics, but there is also Netfabb. Both are proprietary software's, not free.

  • File Formats *

Most of the time 3D software apps save their files in an application-specific format, which in the case of proprietary CAD tools usually are frequently changed and heavily guarded trade secrets.

There are very few interchangeable CAD file formats. The two most widely used interchangeable CSG file formats are STEP and IGES. Both strip the geometries from parametric data and offer only "dead" solids. Features can be added and removed, but the base shape is locked. There is to date no industry-wide interchangeable file format that retain parametric data.

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 because they contain no parametric data - only the coordinates of the polygon vertices that make up the solid volume. 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 and save and distribute its original parametric file along with generated STL files.

Slicers (CAM)

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. More info is on the CAM Toolchains page.

In order to turn a Design 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. Early versions of RepRaps used a protocol called SNAP but industry standard G-codes are now used. To Convert STL files to G-code, you can use one of the following programs:

  1. MatterSlice (Fast and full featured - works with MatterControl)(open source)
  2. Skeinforge (Dated solution)(Still one of the best and highly recommended for accurate prints
  3. Cura (Also includes G-Code sender)(Extremely fast and accurate)
  4. Slic3r (Popular solution for most RepRappers)(Lots of bugs in every release)
  5. Kisslicer (Fast and accurate with very few bugs)(Closed source)
  6. RepSnapper
  7. RepRap Host Software
  8. X2sw
  9. SuperSkein
  10. SlicerCloud (Online Slic3r solution)
  11. Simplify3D (All-In-One Paid Suite)
  12. Cloud3Dprint (Slice your 3D files for over 150 supported printers or enter your own customized 3d printer parameter)

The STL to G-code conversion slices the part like salami, then looks at the cross section of each slice and figures out the path that the print head must travel in order to squirt out plastic, and calculates the amount of filament to feed through the extruder for the distance covered.

(Normally you don't need to repair, edit or manipulate STL files directly, but if you do, you might find the software at Useful Software Packages#Software for dealing with STL files useful).

  • G-code sender *

To send the G-code files to a microcontroller's g-code interpreter, you need to either to:

  1. Load the G-code file on an memory card (typically SD card) if supported.
  1. Historically it was more common to Drip-feed the G-codes (usually a line at a time) over a serial port (RS-232 or TTL level, often used with a USB converter) or a direct USB connection using one of the following programs on your workstation, this has become more common again with the use of klipper

Some of the options are cross platform while others will only work with certain operating systems or prefer specific integrated firmware interpreters.

Machine Control

After you have your G-code file, you have to run it through a G-code interpreter. This reads each line of the file and sends the actual electronic signals to the motors to tell the RepRap how to move. There are two main ways to run a G-code interpreter:


1) The most common way is to interpret G-code in the firmware of a microcontroller. Typically, the microcontroller is AVR-based which is what's used in the Arduino. In order to transfer the g-codes to the microcontroller, you need a way to send the g-code to the microcontroller. See below for more details.


2) The alternate way is to interpret G-code using software that runs on a multi-purpose O/S such as linux. Two examples are EMC and Redeem. With these types of interpreters, THERE IS NO GCODE SENDER. The operating system communicates directly with special hardware that controls the motor signals. For EMC, it typically uses the computer's parallel port. For Redeem, it uses the PRU built into the Texas Instruments ARM CPU on the Beaglebone Black.


G-codes

After your microcontroller has its firmware loaded, it is ready to accept G-codes via the software-emulated RS-232 serial port (aka COM port). This port shows up when you plug in your arduino to the PC via USB. You can either use a program to send these G-codes over the serial port or you can type them in by hand if you fire up a plain-old terminal application like hyperterm or minicom. If you use a program, they generally take files in gcode format.

For all available firmwares see List of Firmware. The following is a brief list of the most popular firmware:

Firmware

The firmware files are usually packaged as source code for an Arduino IDE project. Arduino source code consists of a bunch of PDE (or as of Arduino ver 1.0, INO) files along with some extra .cpp and .h files thrown in. The Arduino IDE compiles the source code into a single .hexfile. When you click on the upload icon in the Arduino IDE, it uploades the .hex file to the electronics.


RepRap Toolchain.jpg