Introduction: Cheapest Portable 3D Printer

So this is the 3D printer I made which so simple, portable and cheap. The making of 3D printer itself may be a hard job for some. But I can say that it is simple but time consuming if you have a basic understanding of the principles and knowledge of the working of 3D printer.

In this instructable I will provide the full high definition description on how to build the 3D printer from scratch to the end, and the software part. In short if you completely understand this instructables (all the steps), then you can easily create and print your own models, all by your self.

The printer we are going to make is a FDM(Fused Deposition Model). This model works by melting the plastic filament and depositing it in the layer below it. After each layer is finished the extruder rises and continues depositing on top of the previous layer until the model is completely printed.

Trust me if this is your first 3D printer, then you will feel amazing at the end results. And the making would be fun.

Before starting to make a printer, go through the article till the last step. The last step is an Important step, do not skip it.

I will divide the steps from start to end as 4 parts:

1. Building the structure

2. Uploading and installing the softwares

3. Testing and Tuning

4. Printing your dream

So lets start:)

Step 1: Building the Structure

The parts for this project are easily available on ebay and other web sites. I am making a list of required parts and advisable tools.


  1. Extruder assembly 0.4mm nozzle X 1
  2. Stepper motor X 4
  3. Pulley for belt X 2
  4. Belt for pulley X 4m
  5. Drawer channel X 6
  6. Screw rod coupler X 2
  7. Screw rod X 2
  8. Arduino mega X 1
  9. Ramps 1.4 X 1
  10. A4988 Motor driver X 5
  11. Thermistor 100k X 2
  12. Toggle switch X 1
  13. Old computer SMPS X 1
  14. LED X 2
  15. MDF sheet X 1
  16. Small nails and nuts and bolts
  17. Leaf switches X 3
  18. Heat bed X 1
  19. PET or Kapton tape
  20. Screen and switch compatible for Ramps 1.4(OPTIONAL)


  1. Hacksaw blade
  2. MDF wood cutter
  3. Driller and bits
  4. Hammer
  5. Glue
  6. Plier
  7. Screw drivers
  8. Level scale
  9. Long steel scale
  10. Measuring tape
  11. Pen for marking
  12. Sand paper
  13. Set squares

Step 2: Making Y-Axis (Heat Bed Assembly)

The heat bed is the Y-Axis for the printer. It is mounted on a base piece. The full description on cutting and assembling is given in the pictures.

Step 3: Y-Axis Movement Assembly

Y-Axis movement consists of motor belt assembly. This assembly is obtained as shown in the pictures.

Step 4: Making Motor Mount for Z-Axis

The motor mount is used to hold the motor for Z-Axis. This motor mount is simple to make. The picture speaks for it self.

Step 5: Making Z-Axis

The Z-Axis frame acts as the basic frame and adds the strength to the printer. The frame measurements is taken randomly keeping in mind the space for the extruder to move for its space.

Step 6: Making X-Axis

X-Axis is the one that holds the extruder and the X-Axis assembly Slides over the Z-Axis Assembly. The X-Axis assembly is screwed to the drawer channel of the Z-Axis to move up and down. The X-Axis assembly is assembled as given in the pictures.

The X-Axis assembly slides in the Z direction by the screw rods. These screw rods are put through a stationary nut which is held by the X axis assembly. So when the screw rod is rotated by the motor the X axis assembly is shifted up or down.

This nut assembly is also shown in the pictures.

X-Axis assembly consists of movement of the extruder. The extruder assembly is fixed as in the picture.

Step 7: Fixing the Electronics Pieces and Wiring

Fixing the electronic part is a crucial part since it should be fairly hidden, should be less messy, and easily debugged.

The positioning of Ramps, Arduino, Motor driver, and power supply socket is shown.

Since portability of the printer is of great requirement, a handle is provided at the top part.

SMPS is positioned at the bottom of the printer. The Red wire gives +5v, Yellow +12v and the black wire is Ground. To switch on the SMPS, the green wire is to be in contact with a black wire. So we keep a toggle switch in between these two to on and off the SMPS.

Guide to wiring is given in the pictures.

Step 8: Partial Testing the Parts

Partial testing is to check if the parts and movements are working. An arduino code is attached. Upload it to arduino and test through a serial monitor. The code is simple, and can be modified as your convenience.

Step 9: Uploading and Installing Softwares

In the software part, we need 3 things to properly function the the printer.

  1. Firmware for the Arduino.
  2. An interface for the printer.
  3. A slicing tool to convert the 3D objects into g codes.

The following is the process to follow to print an object.

We need a file that contains the object. Normall they are in .stl formats. One can either design a new object or get a previously done design. Thingiverse gives a lot of objects as .stl files and is a very good site for 3D printers. The next step is to convert this file into g codes which are instructions to 3D printer. To do this we need a software. There are many softwares available like slicer, cura etc. I would prefer Cura since it is simple to handle. After converting this into g codes, we need to send this codes to printer through an interface. Although cura supports plugins for this, it is a good habbit to have another interface for this. There are different softwares for this like repetier-host, pronterface etc. I use pronterface. The next thing is to have a firmware in Arduino to interpret the g codes and act accordingly. For this we use Marlin firmware.

Instructions to use these are given in following steps.

So what we need to have are:

  1. Cura (For slicing)
  2. Pronterface (For interface)
  3. Marlin Firmware (For Arduino)

Download them :p

Step 10: Setting Up Marlin Firmware

Marlin firmware is code for Arduino. It is pretty much commented properly. Although it is a collection of number of header files, we need not worry so much. Just modify the code as said and you will be good to go. Fine tuning of the code for printer is done later.

1. Changing the motherboard

Open the Configuration.h file and change the motherboard as follows:




2. Changing the temperature setting

In Configuration.h file change the code following setting:

#define TEMP_SENSOR_0 5

#define TEMP_SENSOR_1 0

#define TEMP_SENSOR_2 0


"Modify the DEFAULT_AXIS_STEPS_PER_UNIT, this will be done later."

4. Now Upload the marlin.ino to Arduino through Arduino IDE.

Step 11: Setting Up the Pronterface

Setting up the Pronterface is pretty simple.

Plug the printer in and launch the pronterface. It will automatically detect the com port. Now set the baud rate seen in Configuration (#define BAUDRATE 250000) in the pronterface. And if everything goes correct, you can see the printer is connected in Pronterface.

To test if every thing works

1. Test extruder

Set the 'heat' to 250 degree and then you can see the graph rising. If not, there is a fault.

2. Test the heat bed

Set the 'bed' to 70 degree and the you can see the graph rising. If not, there is a fault.

3. Test X,Y and Z Axes

Press the minimum distance in the arrows so that each one moves.

If everything is fine, you are good to go to tuning.

Step 12: Testing and Tuning

Testing and tuning is the most simplest but important step, since it determines the print quality and perfectness of the prints. There are 4 things to be tested. Each of this steps are similar. So get to know how to do it and apply to all the remaining.

Adjusting the X-Axis

Get a good measuring scale to do this. Home the X-Axis through the pronterface. Mark the current X position of the extruder. Now press the button to move the X-Axis 100mm. Now measure the offset made by the extruder. If it is perfectly 10mm, you are good to go. Else take the Configuration.h file and take the 'DEFAULT_AXIS_STEPS_PER_UNIT' statement. in my case, it is given as :

#define DEFAULT_AXIS_STEPS_PER_UNIT {78.7402,78.7402,200.0*8/3,760*1.1}

Here the values are for X,Y,Z and Extruder respectively. Now divide the value found in code by actual distance moved in mm and multiply it with 100. And the value you get is the one to replace the old value in code.


New val = ( old val / distance moved in mm ) * 100

There are different methods to do this, but this method is that I found working practically and results are good.

Now continue this for all the axes and extruder and you are good to print your first print.

Step 13: Printing Your Dream

To print your dream, I suggest print a sample object so you can see how its done. I would prefer a calibration block which are easily available to print. A sample calibration block is attached. Open the .stl file in Cura. You can drag the object to desired space.

1. Set the Filament diameter to 1.75mm which is the dia I am using

2. In the advanced panel, set the nozzle size to 0.4mm which you are using

All the other settings can be left as it is. You can change if you know what they are.

3. Now save the g code from File=>Save G code

4. Now connect the printer and open pronterface

5. Open the g code file in pronterface

6. Before printing, home all the axes so that you can see if everything is fine.

7. Now press print and enjoy the first print

Dont worry if you print goes wrong. There are lot of things can go wrong. Before the first print comes correct there are many adjustments needed. Enjoy!!

Step 14: Important Tips

There are many important things needed to know before printing.

  • Make sure the print bed is fairly level so that the print gets good adhesion in all direction.
  • Make sure that while the Z Axis is in home position the gap between the bed and nozzle is in the thickness of standard paper.
  • Place standard adhesion material (PET tape, Kapton tape etc) on print surface for good adhesion.
  • Provide a universal stop switch that can cut the power supply to the printer if something goes wrong.
  • Keep the print surface always clean.
  • Have a good wiring so that the movements of extruder does not have a chance for contact.
  • Do not touch the printer or any parts of it while printing.
  • Do not give any chance for short circuit.
  • Please wear safety equipments while working with power tools, Hammer, Blade etc.
  • Providing a fan for the power supply and motor drivers is very good.
  • Please monitor for any faults or faults that may occur while the first print is going on
  • It is a good habit to frequently check for the printer while a print is going

Have a happy printing and prototyping.

Make it Move Contest 2016

Runner Up in the
Make it Move Contest 2016

3D Printing Contest 2016

Runner Up in the
3D Printing Contest 2016

Robotics Contest 2016

Runner Up in the
Robotics Contest 2016