DIY High Resolution, Low Cost 3D Printer




Introduction: DIY High Resolution, Low Cost 3D Printer

About: Aspiring to be the biggest 3D printing and woodworking geek.

Over the past years, 3D printing has opened out amazing opportunities to every builder and maker out there to become her/his own independent producer and designer. I have always been amazed by the idea that I can design and print my own parts. I live in a small town and there is only one 3D printing service for miles--and that business definitely takes advantage of their location because it is NOT cheap to get parts printed with them. So instead of paying a fortune for all the parts I needed, I thought of designing and building my own 3D printer so that I could print parts whenever I wanted! But I didn't want to just buy all the parts and assemble a 3D printer (which was too expensive for me to have considered doing anyway). I wanted to design one that was much more affordable, and to implement a few of my own structural and design changes to maintain a print resolution that was as good as a commercial 3D printer's resolution. Conventional 3D printer prices start at about $250 and go up and up! I was able to make one for about $87 (Prices may vary slightly based on where you live) with the same functionalities, resolution and a large build volume. I bought all my parts in INR (Indian Roupees). It took me about one and a half years to design and build this printer, and I'm happy to shorten the whole task for you. I've also made a few minor changes from my original design to simplify and improve the building process for you.

I've made this Instructable in a very detailed manor including precise measurements for each part to help you reconstruct this printer exactly. I hope you enjoy making this as much as I did! This project is for all the makers and innovators who like being independent and getting their hands to build something new. Enjoy! :)

This is my first instructable, so please leave feedback and questions in the comment section below, and don't forget to drop a vote if you liked this project! :)

How is this printer different from conventional 3D printers?

  • This printer doesn't use the conventional belt pulley system for the X and Y axes. Instead, it uses a threaded rod and nut to move each axis. I found that by doing this I was able to cut down the cost considerably while maintaining the same print resolution.
  • It uses one stepper motor for the Z axis instead of two. This again maintains the same amount of stability and resolution while cutting down the cost.
  • The X axis is placed below with the Y axis instead of with the Z axis above. This small change was made to reduce the load of the single Z axis stepper motor (conventional 3D printers have the X axis which moves up and down with the Z axis). The print resolution is still perfect!
  • And of course, it turned out to be a good 100 - 150 $ cheaper than conventional printers!!

NOTE: I have referred to images as: fig.1, fig. 2 etc. They have all been added in order ("fig.1" = the first image in the step, and so on). If you click on the image too, you'll see that the images themselves have a "fig." name.

The Instructables Fusion 360 design class was lots of fun and helped me to design this printer and make it easier for the reader to visualize parts and fixtures.


Build volume: 20cm x 15cm x 35 cm

Resolution: 0.2mm

Travel speed: 80-100 mm/s

Print Speed: 40-60 mm/s

You will need a work space with some powerful tools to make this.

Here's what you have to be prepared for:

  • Drilling
  • Cutting (metal, acrylic)
  • A bit of soldering
  • Some determination and hard work! :)

Here are the parts you'll need to buy online unless it's sold in your local appliance shops. I found everything I needed on Ebay India. (Excluding parts that will be necessary for building)

TIP: Check you your local thrift shops for any of these parts. If you do find any, they'll be way cheaper and you'll be helping to recycle things!

This turned out to be $74 for me. Prices vary based on where you live.

Materials to build:

Rectangular Metal Rods:(length x width x height)

2 rods sized: 58 cm x 2.5 cm x 2.5 cm

1 rod sized: 60 cm x 2.5 cm x 2.5 cm

1 rod sized 35 cm x 2.5 cm x 2.5 cm

Acrylic/Perspex Sheets 4 mm Thick:(length x width)

1 sheet sized: 35.5 cm x 35.5 cm

1 sheet sized: 31 cm x 22 cm

1 sheet sized: 35 cm x 15 cm

1 sheet sized: 22 cm x 7 cm

Metal U-Channel Width: 2.5 cm, Height: 1.3 cm (width and height may vary slightly in your local stores. Sizes should be close to these). (length only):

2 U-Channels sized: 60 cm

4 U-Channels sized: 10 cm

4 U-Channels sized: 35 cm

2 U-Channels sized: 7 cm

Total length of the U-Channels: 314 cm

You can buy the total length at one go and then cut them into the sizes required. If you do this make sure to buy at least 5 cm extra to compensate for loss while cutting.

M8 (8 mm diameter) Threaded rods: (length)

1 rod sized: 65 cm

2 rods sized: 36 cm

Mounted Ball Bearings:

6 ball bearings with 8 mm inner diameter


3 flexible couplers 5 mm x 8 mm

Coupling Nuts:

3 M8 * 13 * 24 coupling nuts

And finally some sturdy metal sheets (you'll need these to make a few custom L brackets and motor holsters).

Now you can start building!

Step 1: The Frame/Base

(NOTE: The dimensions in the image above are all in millimeters)

This is going to be the base for the 3D printer. I used three metallic rods (with the dimensions given above in fig.1) and joint them together by attaching screws to two L shaped metal pieces at each corner. Welding them together would work fine too, provided you have the experience and the equipment.

Drill four holes in the L bracket and metal rods like in the picture above (fig. 4). Fit screws into the two L brackets and the rod and tighten a nut on the other side. I haven't specified the size of the holes, they depend entirely upon the sizes of screws that you have. The L brackets make a strong and sturdy frame.

The metal U-channels will support the X and Y axes as they slide in their respective directions. I used U-channels with a width of 2.5 cm and a height of 1.3 cm. If you don't find the exact sizes in your stores, look for the size closest to the values. Take the two 60 cm long U-channels (see step 1), place them across the frame like in fig. 5 showing the separation distance of each channel. Drill four holes going through the U-channel and the fame (one at each end), and fix a screw in tightly.

After you've done this, drill one hole in the back of the frame for the Z axis fixture, going all the way through the rod (fig. 7). It might be hard to do this later on. The hole should be right in the middle of the back rod (30 cm from one corner).

Step 2: Fixing the Mounted Ball Bearings

NOTE: All dimensions in the images are in millimeters.

Once you've got the mounted ball bearings (fig. 1), measure the distance in between the two U-channels. In my case, it turned out to be 24.5 cm. Once you know the distance, mark the middle (which was 12.25 cm for me) and place the center of the bearing there.

TIP: You can stick a pen down the holes of the mounted ball bearings to mark where on the metal rod you have to drill.

Fix the bearing down tightly with some screws. Repeat this for the other side of the frame with another mounted ball bearing.

Finally, slide the 65 cm threaded rod (see step 1) into both the bearings (fig. 4).

TIP: Make sure that the mounted ball bearings are directly opposite each other. You can verify this when you are sliding the threaded rod through both bearings. Make sure that the rod is perpendicular to both sides of the frame.

Step 3: Making the X Axis Stepper Motor Holster

NOTE: I used a different colored coupler. It has the same functionalities as the one you will be using.

For this step you're going to need any strong, sturdy metal sheet.

You'll find four holes on the front of the stepper motor. Measure the horizontal distance between any two of the holes (It was 31 mm in my case). We'll call this "mes. 1".

Next, fix the coupler to the stepper motor and the threaded rod using the small screws provided with the coupler (fig. 4). (Do this for all three steppers). Slide the threaded rod through the ball bearings (fig. 5) until the coupler is about 1 cm away from the metal rod. Hold the stepper motor in that position and measure the horizontal distance from the top of the metal rod (frame) to one of the top holes on the face of the stepper. This one is "mes 2".

Finally, holding it in that setup measure one last distance: "mes 3" (fig. 6 explains).

Fig. 7 shows a complete holster with all measurements. Make sure you refer to it while making yours.

Cut out a piece like in fig. 8 from you metal sheet and bend it like in fig. 7.

TIP: To bend, hold the piece in the vice with the part that needs to be bent just above. Use a hammer to bend it down to 90 degrees.

Drill two holes in the holster for the stepper motor and two at the bottom for the screws to attach it to the frame (fig 3).

Don't attach it to the frame yet!

Step 4: Making the Z Axis Platform

NOTE: All measurements in the images are in millimeters.

In this step you're going to need the 35 cm x 15 cm (4 mm thick) acrylic sheet, 2 more of the mounted ball bearings, two 35 cm long U-channels, the 35 cm long rectangular metal rod and a bit of metal sheet (see step 1 for component list).

Start by attaching the mounted ball bearings (fig. 1) in the center of the acrylic sheet, one at each end (about 1 cm away from the border).

The rectangular metal rod is just as long as the acrylic sheet. Flip the acrylic sheet over and place the rod in the middle of it (fig. 2) and drill three holes through both. Don't fix them together just yet!

Flip the acrylic sheet back and drill holes for the U-channels (measurements shown in fig. 3). Go ahead and fix the U-channels down with four nuts and bolts (fig. 4).

From the metal sheet cut out a rectangular piece so that it fits onto the rectangular metal rod like in fig. 5. Make sure that 2.5 cm is sticking out so that it can be joint to the frame. The width should be approximately the same as the metal rod's width.

Now go ahead and attach the rectangular metal rod to the acrylic with 6 nuts and bolts. Make sure that while doing this you don't forget to attach the small metal piece you just made!

Make 2 L-brackets from the sheet of metal, and drill holes through them and the rectangular metal rod. Use 2 nuts and bolts to fix them tightly to the rod (fig. 6).

Fix the entire structure onto the frame tightly with nuts and bolts (fig. 7).

Step 5: Making the X Axis Carriage and Platform

NOTE: All dimensions in the images are in millimeters.

Find the three M8 coupling nuts (see step 1) from your shopping bags, and some sturdy metal sheet.

These nuts have 6 sides, and what you're going to need to do is bend the metal sheet around 4 corners of the nut as tightly as possible like in fig. 1. You're going to have to make 3 of these, one for each axis.

Cut a piece of metal sheet approximately 3 cm (width of the nut) x 7 cm. Keep 2 cm sticking out, hold the metal sheet to one side of the nut, and attach it into a vice. Use a hammer to fold down the metal sheet onto the second side. Repeat this until the sheet is folded over 5 sides of the nut. Press the two straight loose ends of the sheet together and drill a small hole like in fig. 1. The two ends should not come all the way around but have a small gap in between. When both the ends are held together, it should act like a clamp and hold the nut tightly inside. Screw each one onto a threaded rod (do this for all of them) (fig. 2). Once you've done that you can fix the stepper motor holster (made in step 3) to the frame. These coupling nut structures will be on the threaded rods in between both bearings (fig. 13). So you're going to have to slide the threaded rod through one bearing, screw the coupling nut structure on, and then slide the threaded rod through the other bearing.

You might want to place a plastic stopper at each end of the threaded rod (right after it comes through the bearing) so that it is held in between the bearings. Or you could just fill the threads with something so that it doesn't slip through. I used Araldite and it worked fine. Just be careful not to stick the threaded rod to the ball bearing.

TIP: You can put a few drops of super glue between the wrapping and the nut so that they stick firmly to the nut. But make sure you don't get any inside the threads!

Find the 35.5 cm x 35.5 cm acrylic sheet, two 10 cm long U-channels, and two 35 cm long U-channels (see step one).

Recall the distance in between the U-channels on the frame (fig. 3) we'll call this "mes 1". Fix the two 10 cm long U-channels to the bottom of the acrylic (fig. 4), so that the distance between the two ends (fig. 5) is equal to mes 1. These new U-channels will slide along the other U-channels and help go in a straight line. Place the structure on the frame like in fig. 6, and make sure that it fits tightly and does shake from side to side. Look at fig. 14 to see how it should look from underneath.

Fix the other two 35 cm long U-channels to the structure like in fig. 7. But when you fix them with nuts and bolts, there should be two small bolts separating the U-channels from the acrylic like in fig. 8 and 9.

Now attach the mounted ball bearings to the platform in the center (fig. 10).

Drill a hole right in the center of the acrylic piece. Fix the whole platform to the coupling nut (fig. 11) which is on the threaded rod. You're getting close! fig. 12.

Fit the holster (from step 3) to the stepper motor, then slide it into position and attach it to the frame with two nuts and bolts (you'll have to drill through the frame).

Step 6: The Y Axis Platform

Keep the 31 cm x 22 cm acrylic sheet, two 10 cm long U-channels and the heated bed ready.

Fix the U-channels to the acrylic sheet as shown in fig. 1. (Use the method in the previous step to measure and attach the bottom U-channels).

Drill a hole in the center of the acrylic sheet and attach the coupling nut structure to the bottom like you did in step 5 for the X axis.

Place the heated bed on the acrylic and mark where you will need to drill holes (fig. 2). Take out your drill and drill in the marked areas.

Now keep this structure aside, we'll deal with it in step 11.

Step 7: Y Axis Stepper Motor Holster

This step involves the same measurements as in step 3 (X axis stepper holster). Please refer to that if you have any doubts. Except this time, the screws go into the bottom holes of the stepper motor.

Drill holes in the platform you just made in step 5 to attach the holster to the acrylic. The threaded rod should pass through both empty ball bearings. Make sure you don't forget to use a plastic stopper or fill the threads so that the rod is fixed in between the ball bearings (see step 5).

REMINDER: Make sure that when you're fixing the motor to the holster, the coupling nut structure in screwed onto the threaded rod. Otherwise you'll have to undo everything to screw it on later.

Step 8: The Z Axis Carriage

Take the last acrylic sheet out (22 cm x 7 cm, see step one), and the last two 7 cm long U-channels.

These U-channels will be the rails for the Z axis, except this time, instead of being in between the longer U-channels, fix the rails outside like in fig. 1 and 2. This, I found, gave better stability to the carriage. (See steps 5 and 6 for measurement details.)

Drill a hole in the middle of the sheet, and connect the coupling nut device like in step 5 (except this time, the coupling nut isn't on the threaded rod yet. (fig. 3)

Step 9: The Extruder Holster

NOTE: All dimensions in the images are in millimeters.

In this step you're going to need some sturdy metal sheet, the filament extruder and the hot end nozzle (see step 1).

Fig. 1 shows the how you're going to have to cut and bend the metal. Fig. 3 shows the measurements for the holster.

Cut a slit as shown in fig. 2 for the extruder nozzle. The slit should be slightly larger than the diameter of the hot end's threaded rod (see fig. 4 for what that is). The slit length should be about 4.5 cm

Attach the filament extruder and the hot end nozzle to the holster as shown in fig. 5. Notice that there is an extra nut (on top in fig. 4) to tighten the whole extruder to the holster. Once the extruder is assembled and in place the extra nut has to be tightened to the holster.

Take the Z axis carriage you made in the previous step and connect the holster to it as shown in fig.6 with a few nuts and bolts.

Step 10: The Z Axis Stepper Motor Holster

You're going to need the metal sheet again! Go ahead and bend it as shown in fig.1. This is almost the same as the holster you made for the Y axis stepper motor, so you shouldn't have any trouble measuring or making it. If you do, refer back to steps 3 and 7.

Once you've made the holster, slide the threaded rod connected to the motor (keeping in mind that the coupling nut structure has to be in between the bearings, see step 5) through one bearing, screw on the coupling nut structure (which should be attached to the extruder holster and Z axis carriage by now) to the threaded rod, then slide the rod through the other bearing and finally attach the motor to its holster (fig. 3 and 4). Make sure the U-channel rails are not on top of each other but fit in side by side.

Congratulations! You've finished building the 3D printer. You can put away those saws that drill! :)

Let's wire it all up now. You're just a few steps away from printing your first object!

Step 11: Attaching the Y Axis Platform and the Heated Bed

In this step you're going to connect the 100k thermistor to the heated bed using any heat resistant tape. Kapton tape worked perfectly for me.

You'll observe that the heated bed has two kinds of surfaces; use the slightly rougher one as the bottom and the smooth one as the top. Flip the heated bed so the bottom is facing you. In the middle of the heated bed there's small hole. Stick the thermistor inside just enough so that is doesn't protrude out of the other side. Use some Kapton tape to hold it down in that position.

Solder two small wires to each end of the thermistor (fig. 2). Thermistors don't have a specific polarity, so don't worry about the wires getting mixed up.

Now take 4 bolts (length doesn't matter) that fit through the holes on the heated bed, and fix them on each corner like in fig. 3. The bottom nut will be used to adjust the bed height.

Take the Y axis platform that you set aside in step 6, and fix it to the coupling nut structure (which should be on the last empty threaded rod) fig. 4. Again, make sure that the guide U-channels are side by side with the long ones, and not on top of each other.

Place the heated bed on top of the Y axis platform, so that all the screw fit into the holes you drilled for them in step 6 (fig. 5 and 6).

Observe fig. 7. The table drawn on the heated bed tell you how to wire it up based on the power supply you are using. We are using a 12 volt power supply, so like in fig. 8, solder one positive wire to terminal 1 on the heated bed and one negative wire on terminals 2 and 3. Roll the ends of the negative wires together.

Place a thin piece of glass slightly smaller than the heated bed and clip it down with a few binder clips.

Finally, use a spirit level and adjust the nuts on the heated bed until it is parallel to the ground.

Step 12: Attaching the Endstops

In this step you're going to need the three endstops you bought.

Endstops determine position zero for each axis, and prevent the axis from going further than they actually can.

Attach each endstop right next to the stepper motor of each axis on one of the U-channels supporting the axis' platform (doesn't matter which). I applied a few drops of super glue on the back of the endstop, and then placed it on the U-channel. Make sure the metal switch is facing the acrylic platform which will be moving. So when the acrylic sheet comes too close, the switch goes off.

Step 13: Wiring the Power Supply

You're going to need a meter or two of the ground, live neutral wire shown in fig. 1 and a plug top shown in fig. 2.

Start by stripping the three cable wire. Then open up the plug top and wire it up as shown in fig. 3 and 4.

Fig. 5 shows the front of the plug. If you notice, the letters L, N and E are inscribed on it. They stand for Live, Neutral and Earth. This tells you which wire is connected to what. You're going to have to remember this so that you can connect it correctly to your power supply. For example, my yellow wire is connected to Earth, my red to Live, and my blue to Neutral. Make sure that you don't screw down the insulation of the wire.

Go ahead and strip the other side of the three cable wire, and attach it to the power supply according to how to fixed the wires to the plug. In my case, the yellow will be connected to Earth, my red to Live, and my blue to Neutral. DO NOT put the plug in a socket yet.

Now it depends where you live, but in some areas, your sockets might not have three pins, but only two (Live and Neutral). In that case, you can just use two cables, and leave the Earth terminal on your power supply empty.

Observe the sticker on the power supply (fig. 7) and make sure your switch is set for the correct voltage (again this depends on where you live).

Step 14: Wiring Up the RAMPS 1.4

Take out the RAMPS 1.4 shield and the Arduino Mega from your shopping bags.

Attach the RAMPS 1.4 to the Arduino Mega, so that it sits perfectly on top.

Follow this guide to wire up the RAMPS 1.4 correctly.

IMPORTANT: Make sure you Double Check ALL the connections once you're done. Make sure none of the bare adjacent wires are in contact with each other. You do not want to risk blowing something up or causing a fire.

Step 15: The Software to Make It Work

Download the Marlin firmware for the Arduino Mega here. Download the Zip file (fig.1) and extract all the files. Inside the "Marlin" folder you should find a "Marlin" INO file (or arduino file. Fig. 2). Open that into the Arduino IDE. Go to the configuration.h tab and scroll down until you see the same as in fig. 3. Change the digits so that it now matches fig. 4. Save the whole file, and upload it to your Arduino!

Download the Arduino IDE here if you don't have it already.

Download Repetier Host (3d printing and slicing software) here.

Launch Repetier Host, enter some basic information about your printer, like the max build dimensions, upload a test 3D object (preferably a cube), slice the object and hit the print button! Don't forget to plug your power supply cord into the socket now. :)

The Arduino should be connected to the laptop/PC at all times. You can buy an SD card slot for RAMPS 1.4. This SD card holder (which will later on contain code to print objects) can be inserted into the RAMPS 1.4 board so that the printer can run without a laptop or PC being connected to it.

Before you slice the object (with either Cura Engine or Slic3r) you will need to edit their configurations to set the printer to the correct temperatures (based on the plastic you are using and the object that you want to print).

Step 16: Tips and Tricks!

Congratulations! You now have your very own 3D printer!

Now to get it printing you're going to need some plastic filament (easily available on ebay or amazon).

There are two commonly used types of plastic: ABS and PLA. Follow this guide to see which plastic suits your needs.

Here are the temperatures I set my printer to for different plastic (degrees Celsius)


Heated bed temperature: 70 degrees

Hot end temperature: 190 - 200 degrees


Heated bed temperature: 90 - 100 degrees

Hot end temperature: 230 - 240 degrees

I printed PLA directly on the glass of the heated bed, but with ABS I had to stick blue tape over the bed so that the first layer stuck to the bed. Have a look at this article and see what works best for you. :)

I hope you enjoyed this! If you have any questions feel free to drop them in the comment section below, and don't forget to drop a vote! Thanks a lot. :)

First Time Author

Second Prize in the
First Time Author

Be the First to Share


    • For the Home Contest

      For the Home Contest
    • Big and Small Contest

      Big and Small Contest
    • Make It Bridge

      Make It Bridge



    Question 3 months ago

    Can I use different motor in different axis to make a 3D printer? Like in x axis I want to use Nema 34 and in y and z axis I want to use Nema 23.


    Question 11 months ago

    I at last stage of building it but facing a problem, my motors are just vibrating not moving smoothly when it is connected to RAMP.
    Kindly help me it this.
    Please share all terminal connection of motors on Ramp


    4 years ago

    Excellent work! I made my printer from an instructable too. It is perhaps not as fast as a commercial printer, it may not look as good, and it may have cost more. However the quality of the product is good enough for what I need and, most importantly, I can print things that make my wife and children happy too.
    The printer also helps both the family and I, learn about 3D drawing and printing.
    I made it, so I know every mm of it. I can add to it and improve it when I like.
    For me, that is why this istructable is great and also why anyone who wants to get involved in 3D should make their own printer . It is the best way to learn.
    Thanks for sharing with the community!


    Reply 10 months ago

    Please help me also
    My motors are not working they are just vibrating.
    Please help please


    Reply 4 years ago

    I completely agree :) I use this printer to print parts for other projects, and it’s been a lot of fun. Thank you!


    Question 1 year ago on Step 16

    I just think about the specs. 20cm x 15cm x it possible to increase it a little bit and what is the limit of it?


    Question 1 year ago

    If I use PLA as my material I guess I can skip getting a heatbed and use some rough or adhesive material over my acrylic?


    Answer 1 year ago

    You could, but you still run the risk of warping certain prints. It has happened to me sometimes even with PLA


    2 years ago

    There are no cad files for the reference also the final assembled 3d printer is missing. Pls leave an attachment for that so that it will be very helpful for us. Btwn the printer is amazing.


    Reply 2 years ago

    Unfortunately, no you can’t. The 3D printer motherboard sits on top of the arduino mega.


    Reply 2 years ago

    hyır kullanamassın


    Question 2 years ago

    I see this post amazing but before starting this project I wanted to ask do you still see this design up to date. I mean to use arduino and this mother board still the best option? Or do you recommend to use newer options can you do a video of your design this will be great also.




    2 years ago

    Does it really work? It is not dangerous to make it, is it? I don't want to make it and lose money and time for nothing, so please answer me and please tell me the truth. Thanks a lot for your instructable.


    Reply 2 years ago

    Of course it works — That is if you follow the instructions correctly.


    Reply 2 years ago

    Okey, thank you.


    2 years ago

    Great project Dyuman. But I have a amatuer question. The extruder you have mentioned seem to have a stepper motor attached. How is it working then? Mainly my question is how are you working with only 3 stepper motors.