Cheapest Portable 3D Printer




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

Be the First to Share


    • Backyard Contest

      Backyard Contest
    • First Time Author Contest

      First Time Author Contest
    • Teach With Tinkercad Contest

      Teach With Tinkercad Contest



    Question 2 years ago

    hi, it awesome your work, can tell me the specification of the pulleys, thanks


    4 years ago on Step 14

    For leveling on any surface, perhaps use one or more screws and (don't know the name for it) a screw - on disk like what washing machines have. You can use a circular bullseye level to level the printing platform on all XY directions at once.


    Reply 3 years ago

    Elevator bolts make cheap adjustable feet.


    4 years ago

    what type of stepper motor did you use?

    Angelo LawrenceL
    Angelo LawrenceL

    5 years ago

    how much it will cost for making this project??


    Reply 5 years ago

    if you use cheap steppers like 28-bgj then it will be around 50$ canadian

    if you use nema 17 motors it will cost more like 80$ canadian

    Good luck


    5 years ago

    It was going great until you skipped the Z axis, of fitting the extruder. Word's only compliment pictures, as pictures are any language and simple to understand.
    It would be better if you 'finished' this Instructable, as many of us don't have the time to comment and wait for a reply.
    We just move on, see your username in the future and skip your Instructables because, you have failed to complete this one.
    Your reputation can be ruined in one fell swoop and we all lose!

    Nakagwa Labs
    Nakagwa Labs

    6 years ago

    Are the drawer channels strong enough?


    6 years ago

    Hi there!! I didn't understand how to mount extruder with z axis.. please help me by a tutorial or a video.. thanks

    Joseph Joshy
    Joseph Joshy

    Reply 6 years ago

    some part of making the z axis is put with the making of x axis since it is a combination.
    I will split the steps for it..
    1.Make two assembly to hold the two nuts as shown in step 6(pic 1 and 2).

    2.Place them on the back side of the piece at both end as shown in step 6(pic 3 and 4). The other pieces are for mounting the x axis sliders(pic 6).

    3.Fix the Z axis slider on the opposite side of the nut assembly as shown in step 6(pic 5).

    4.Now you can slide the piece into the z axis assembly from top as in step 6(pic 7).

    Hope this helped :)


    6 years ago


    can you provide more detailed circuit diagram for the RAMPS, also i do not understand the Extruder 1, Extruder 2, Fan Extruder connections in RAMPS, also why 4 stepper? does the y axis or z axis has 2 stepper or the extruder need a Stepper?

    Joseph Joshy
    Joseph Joshy

    Reply 6 years ago

    Extruder 2 is an additional option. Fan is the fan provided for the extruder cooling.

    No. of steppers Axis
    1 X
    1 Y
    2 Z
    1 Extruder

    Toatal :5


    6 years ago

    Awesome! Congrats on being a finalist!!


    6 years ago

    Any updates? more dimensions


    6 years ago

    If you want a kit with just the electronic parts, there's one here. Pretty cheap too. The other link in this thread is the Indian eBay site - this one's the US version.


    6 years ago

    Hi, congratulations for this project !!! You have links with parts to buy in ebay ?



    6 years ago

    Dear Joshi

    First of all my hearty congratulation for your this wonderful Achivement.

    May the Almighty showers his blessings on you for a longer life to achive more in your life.

    I am a retaired person aged 67 and also i am doing a lot of small and simple projects


    My last project was 8x8x8 LED projects and it works very well. i gifted to my grandson.

    Regarding this 3D printer i saw a lot of projects in "Instrucatables" but those are all

    very complicated and expensive asn some parts are very difficult to get.

    Basically i am a Technical person and i have all type of tools so making a project is

    not a problem for me.

    Regarding your 3D printer it is very very simple but Parts details specification numbers and diamension is not mentioned . I am very much eager to make one like this. so kindly sent the parts specification and diamention. It will be more helpful for me. I WANT TO CONTACT YOU.


    BANGALORE ; 09886227553


    Reply 6 years ago

    Thanks but nobody comed to instructables to just go buy kits of ready made commercial systems. What fun is that, unless you are a vendor trying to push your merchandise. Joseph, great instructable.