One of the things we wanted to acquire, for some time, was a 3D printer. But taking into account the prices and maintenance I decided to assemble my own. I decided to assemble it because the cost is lower and when it is necessary to perform maintenance, i know exactly what part purchase, where to buy and how to replace it.

After researching the various existing models decided to mount a Prusa i3 Hephestos . The Prusa i3 Hephestos is a variant of Prusa i3 (one of the known 3D printers), but instead the extruder is acquired in parts and assembled, uses the BQ Hephestos extruder. Although the remaining printer material is all assembled by me I decided that the extruder, as it is a critical component in the printer, should be purchased ready. Eventually, when i have more experience in the field, I can replace it with another extruder.

One of the biggest 3D printing community is RepRap. The RepRap is an initiative that aims to allow the printing of own components at low cost. Since it is an open-source community, all projects / tutorials presented are released under a free software license, the GNU. There’s more info about this community on Wikipedia or in the RepRap wiki. In RepRap wiki there are several tutorials for 3D printers. As I decided to put together a Prusa i3 Hephestos , follow a tutorial that BQ itself created ( tutorial ). Because the tutorial is well structured with photos and step by step explanations, I will not explain it here, just indicate small notes in a few steps.

Step 1: Material

For the construction material i’ve elaborated a list with the necessary. Not always used exactly what is in the tutorial. Sometimes I adapted other solutions.



Comparing this list with the tutorial may notice missing components and some come extra. In case of extras :

  • Only is indicated one meter of GT2 belt but are needed two meters.
  • They are only indicated 4 LM8UU bearings but are needed 7 .

Although they aren’t indicated in the material list, in assembly steps are required .

In the case of missing material :

  • The Stepstick Drivers A4988 come with the controller Ramps 1.4
  • It’s necessary an Arduino Mega which is not indicated in the tutorial. In my case this comes in the Ramps controller pack, along with Stepstick
  • The Nema 17 and Endstops cables that come are sufficient. No extra cable is required.
  • The two bicolor wires already had at home. But it is a normal cable that buying a electrician.
  • The methacrylate base was replaced by an MDF board with the same dimensions and 8mm in height, since i didn’t find any.


  • 8 M3x20 screws
  • 1 M6x40 screw (half screw)
  • 33 M3x10 screws
  • 5 M3x16 screws
  • 7 M3x25 screws
  • 2 M3x12 screws

The M3x18 and M4x6 screws are not referenced because, at the time of purchase, were exhausted and ended up replaced.

  • 3 M6 nuts
  • 5 M10 nuts
  • 4 M10 wide-brimmed nuts
  • 2 M8 nuts

The M3 nuts come with the M3 screws.

  • 8 M10 washers
  • 4 M10 wide-brimmed washers
  • 22 M8 washers
  • 1 Threaded Rod M8
  • 1 Threaded Rod M5
  • 2 Rod M8
  • 1 Threaded Rod M10

The rods are sold in 1 meter bars.

Printed parts

Printed pieces were downloaded from Thingiverse (link) ( a repository of pieces of different types for printing) and printed in several 3D printers. This is the part where you have to know someone who has a printer or buy the already printed pieces (eg on eBay) .


The frame was built in 5mm MDF. He was downloaded here and cut a laser cutter. May acquire it in aluminum in BQ or other companies but with a higher price. A 5 mm MDF board needed was around 3€.

Note: At this time BQ already has several parts to purchase, but the price is a little higher than being adapted for us.

Step 2: Tools, Assembly and Configuration

Besides this material are needed several tools. These are not included in the price it had been acquired for other projects.

Necessary Tools

  • Soldering iron - to embed the nuts and solder some wires;
  • Angle grinder with an iron disk- to cut the rods;
  • Iron file - to create the shafts of the motors 17 Nema a flat surface for the screws "gripping" and filed some printed parts in order to fit more easily and do not create friction;
  • Vise - to hold the engines as they are filed. I would advise a heavy one to prevent movement;
  • Dremmel - if you have any, you can use it to filed the printed pieces;
  • A Phillips screwdriver and Allen wrench (2mm and 2.5mm ) - to the different screws;
  • Multimeter - to calibrate the Stepstick.


After assembling the components and connect the electronics you need to load the firmware to the Arduino. The Prusa i3 Hephestos uses a variant of Marlin firmware (link), the Marlin Hephestos (link to download).

This firmware is uploaded to the Arduino Mega through the Arduino IDE. When you open the .ino file that comes in the firmware, this will open up all the necessary files. One of these files, which will be used to customize the configuration, is "configuration.h". In this file we change the following parameters :

Optional parameters . It allows identifying who made the configuration and when.


Definition of the Arduino communication speed.

// This determines the communication speed of the printer<br>#define BAUDRATE

Definition of the controller model used. The 33 corresponds to a Ramps 1.4 controller with an extruder, a fan and warm bed .

//// The following define selects which electronics board you have.Please choose the one that matches your setup <br>#define MOTHERBOARD 33

The thermistor model used in the extruder. In the case of the BQ Hephestos extruder the model is the 1 (100k thermistor)

//// Temperature sensor settings:<br>#define TEMP_SENSOR_0 1

Definition of "home" of the table. In the case of Prusa i3 Hephestos the "home" is the minimal positions of the X , Y and Z. (front left corner of the table , with the extruder leaning against this )

// Sets direction of endstops when homing; 1=MAX, -1=MIN <br>#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1

Setting table size in mm

// Travel limits after homing <br>#define X_MAX_POS 215  
#define X_MIN_POS 0<br>#define Y_MAX_POS 185<br>#define Y_MIN_POS 0<br>#define Z_MAX_POS 180<br>#define Z_MIN_POS 0

These parameters are extremely important. They tell the Arduino what is the distance corresponding to one turn of the shaft of each motor. The values correspond, respectively, to the X axis, Y axis, Z-axis and the extruder.

#define DEFAULT_AXIS_STEPS_PER_UNIT   {80, 80, 4000,100.47095761381482}  // default steps per unit for Ultimaker

The parameters for the Hephestos Prusa i3 are as follows :

#define DEFAULT_AXIS_STEPS_PER_UNIT   {80,80,4000,100}  // default steps per unit for prusa i3 rework

These values are calculated as follows


We set up a scale in the filament. We made marks each 5mm up to 10cm from the extruder up.

With Printrun we made a 5mm filament extrusion. After extrusion be performed, we measure the scale marked to see how much filament was used. If was used 5 cm, the extruder is calibrated. Otherwise we calculate the new value by the following formula:

new_value = old value * (100 / amount_used_in_mm )

Replace the value in the parameter of the extruder, load the firmware to the Arduino and repeat the process.

This process is repeated until we indicate the amount to be equal to the amount used.


The parameters of the axes are calculated using the calculator that Josef Prusa created (calculator).

In Stepper Motors section we define the following parameters for this case:

  • Motor step Angle - 1.8º - Information on engine specifications;
  • Microstepping driver - 1/16 Ustep ( mostly Pololu ) - Information of Stepstick Drivers A498;
  • Belt pitch - 2 -;
  • Belt presets - 2mm Pitch ( GT2 Mainly ) - belt type;
  • Pulley tooth count - 20 - number of GT2 teeth.

As the motors and belts are all the same, the value applies to both the X and the Y axis. In this case the resulting value is 80.

Bed levelling

The Leveling bed process must be performed before the first printing, and from time to time. This leveling regulates the glass height in relation to the extruder. If the extruder isn’t at the same distance from the glass at any point of this, the impression is compromised. If is too far, the filament does not adhere to the glass and if is very close, the filament gets crushed between the extruder and the glass.This process is performed as follows:

  • In the options that appear on the printer's LCD , there is a " Control" option. Within this there is another call " Level Plate". This option moves the extruder for each of the glass corners. In each of the corners it is necessary to perform the following process:
  • Place a sheet of paper between the extruder and the glass and set the height through the fixing screws. It is necessary to tighten / loosen each screw to be possible to remove the sheet which is between the glass and the extruder, but with some resistance. If you cannot remove the foil which is between the extruder and the glass means that they are very close and you must tighten the screw. If this exit easily, it is necessary to unscrew the screw as they are far apart.

This process is repeated for each of the four corners. The printer starts the process on the left front corner and follows in a counterclockwise direction.

Step 3: Improvements


After mounting and set up everything , I realized that the frame was not sufficiently robust to withstand the filament coil (this weighs 1kg). When put in place, the frame bent enough to put away the extruder from the glass.

Fortunately, I wasn’t the first to register this problem. In Thingiverse, the user voodoopt resolved this issue by adding a support bar to the frame (link Thingiverse ). In addition to the printed pieces, are needed 2 meters of 8mm threaded rod, washers and M8 nuts. After this update, the printer was extremely stable.

Hot bed

One of the issues that arise in 3D printing is the adhesion of the first layer. If this layer does not adhere well ruins all printing because the piece will come off in the process. One way to fix the first layer is to use glue stick across the glass surface. The adhesive creates friction and help adhesion of the first layer (I used this process as the hot bed did not arrive)

A second solution is to use a hot bed. The hot bed, in addition to facilitating the process of adhesion of the first layer, will prevent, in the case of larger parts, that the corners rise. The hot bed will maintain the glass surface to a high temperature ( 60 in the case of PLA), which prevents the PLA solidify completely.


To assemble the hot bed, must dismantle the glass and the base of this. The hot bed I acquired came from BQ (link). This kit brought the bed, the thermistor to detect the temperature, screws, springs and cables.

The assembly process is equal to the glass the assembly process. At the level of wiring, the kit provides two pairs of wires. The thicker connects the Ramps bed connector, the other connects the Ramps thermistor connector.

Both cables need to be soldered to the hot bed and the thermistor, respectively. In these cases the polarity is irrelevant.

After being soldered it is necessary to link them with Ramps and reconfigure the firmware to use the hot bed.

The thermistor connects in T1 connector that is next to the extruder thermistor. The hot bed connects to D8 connector on the side of the power.

In addition to the hot bed kit you need to purchase a new power supply, as the indicated in the tutorial is not enough (only has 10 Amperes). The power supply must provide at least 16 Amperes. 11 Amperes for feeding hot bed and 5 amperes for the remaining components. These supplies were purchased in Banggood. In my case, i had a computer power supply and this had the capacity to deliver up to 30 amps in 12 volt line. At the end of the hot bed assembly is necessary to leveling the table.


On the firmware is only necessary to change the following parameters :


Thermistor model used in the hot bed. In the case of BQ hot bed uses model 1 ( 100k thermistor )

Step 4: Conclusion

After all these steps i have a functional 3D printer. There are always some aspects that need to be tuned but it is a case by case situation. Can find out more about the printers on several existing websites. Here are a few:



About This Instructable




Bio: https://about.me/tiago.santos
More by TiagoSantos:Marvin Night Light BQ Ciclop Home Made mUVe 3D DLP 
Add instructable to: