Building My First 3D Printer

Before I started the actual build, I spent several weeks reading forums and researching as much as I could possibly do. I did not know much if anything at all about 3D printers and it was at times quite frustrating searching for answers.

A fantastic resource is here:

Make yourself familiar with this site as this is where you are going to find answers to most if not all your questions. The answer may be in a form of a link to another site.

I soon realised that patience would be important, and I set myself goals with plenty of time to get there. This is not an everyday project. Don’t get too frustrated or disappointed when you hit a brick wall, and trust me, there will be a lot of brick walls to get past.

Okay, ready to start?

Good, now the first thing I did was to investigate the software and electronics required. My reasoning here was, if I can’t understand this part, then no point making a printer, sounds ok?

Going through the forums I decided soon on using the Arduino Mega 2560 board with the Ramps board attachment. It is easy to obtain and reasonably priced. And I really like the fact that it is modular. Ramps board and driver boards are all individual parts. If one fails, most likely you can replace just the one board. I ordered an Arduino from eBay for around $35 and it would be approx 2 weeks for it to arrive. That is good, as this gives me 2 weeks to read up on firmware and problems other users have had and how they solved them. I also started to find suppliers for the Ramps board.

Now, with the Ramps board, you can get it already built/assembled or you can get the board without any components. When I was looking around for it, the price was around $90 fully assembled. I decided to get just the board itself, not due to the price, I just decided to go down that path, and then purchase components and solder it all up myself. If you know how to solder and feel comfortable soldering surface mount components you should be fine. You do need a very fine tip iron. The cost of 2 pcb’s (boards) and components for both  set me back around $70. You only need one board, but I ordered a spare one as I soon realised that a lot of the components I needed came in lots of 5 or 10.

Some advice, If you think you can solder it together yourself go for it, but remember you must be accurate here. This board sits on top of the Arduino, it is all connected together and if you get this wrong you have the potential of causing damage to ALL your electronics.

While I was waiting for the Arduino to arrive, I downloaded the Arduino software to play around with. Not much playing around really, but this is what you use to edit and upload your firmware to your Arduino board. You need to know how it works and so forth. I decided on the sprinter  firmware, downloaded it and tried to get some understanding of how it works by opening it up in the Arduino software.

You need to make some changes to the firmware, such as the steps per unit for all axis and also the end stops etc may need to be edited. You must be able and feel comfortable in editing and uploading the firmware as there will be many changes you will have to do, calibrating and so forth. I found it all a bit confusing at the beginning, but it is not that hard or difficult as soon as you get to know how it all fit together. Again patience and research is the key here.

A very good resource is here:

The big question is,which printer to build? Well, I really like the look of the Orca v3, but hey I have just started and let’s be realistic, keep it simple, make sure you understand how it all works, and don’t get over ambitious. I am after all planning on building this at home, I don’t have any special tools or machines.

If you have made yourself familiar with the Reprap site, you know that there are RepRaps and also RepStraps. If you build a RepRap you need plastic parts, which you can buy from other reprappers on eBay or through forums. I decided to go for a RepStrap and chose to base my design on the WolfStrap. Timber frame and no printed parts required.

The reason for this was more than one, but by making my printer from scratch, I will be forced to learn how it all works as my printer will be a bit different to any other out there. I will not be able to just download a firmware that will work out of the box so to speak. In other words, by the end of my project I should know a lot more about 3D printers (of this type) , and how they work. If I can get this working then I can print my own parts for the next “good one”. In my mind this sounded fantastic. (Here is another interesting model)

I sourced some timber, rails/slides for the axis. Screws, nuts and threaded rod for the movement. The threaded rod will make the movements very strong but slow. If you want fast printing, belts are the way to go.

I studied the Wolfstrap design, and with that in my mind I sketched up my own version and started to put together the frame. I say my own version as I build mine around what hardware I could get. Sliding rails may be different size to what used in the Wolfstrap design, and the Z-carriage I will design/make as I go along. The table I made out of 6mm mdf with aluminium square tube underneath for support. Screwed down the sliding rails and within a week I had the x,y and z-axis done in regards to the rails.  I still have to make up the rods and the bits that goes with it. (I use 8mm steel threaded rods).

Frame with Y and X axis on rails. Z carriage to the right of frame.

While putting it all together I tried to be as accurate as I could be, using a square to make sure it was all 90 degrees or at least as close as possible. I found that the tricky bit was going to get the threaded rods level both ends, so that when you turn them they don’t jam up. You know, when the table goes from back to front, the distance between the table and the rod must be the same all the way.

Block of wood with nut each end for rod.

I made some wooden blocks with 2 nuts, one each end for the movement of the axis. Nuts glued using JB Weld or any epoxy resin. I used a short piece of rod to hold the nuts in position and to tighten them to compensate for any backlash while the glue dried, but not too hard as it will make the rod too tight and they will not turn. I used a square to try to make the rod parallel with the top of the timber block. This worked ok, but I had to give it a few tries before success. The block in the picture is to go under the table on the Y-axis.

Z carriage coming along nicely.

I made the X and Z carriage mainly out of MDF. You need to cut the parts for this very accurate. Straight and square!Mounting the X and Z carriage can be a bit tricky.

Z carriage mounted to the X carriage

The Arduino board has arrived!

I must say that I was very surprised about the size of it. It was much smaller than I expected.

The first thing I needed to do was to install the drivers for it. This is where apparently some people have had problems in the past. It is a USB board that windows will auto detect, but windows will not auto install the drivers. Windows will not find them. You need to manually point to the drivers as they are in  (in my case) “F:\Program Files\arduino-0023\drivers”.  On my machine I installed the Arduino software on F drive, and the version I am using is 0023. Guess what ? It worked! I opened up the Arduino software and uploaded the blink program to test and it worked fine. I then uploaded the sprinter firmware and that worked fine as well. That is, the process of uploading the firmware worked. It did not come up with any errors. Good, this is looking good indeed. I think I must have uploaded the firmware and the blink program 10 times that night…crazy, I know but this is how you learn, play with the “toys” and get to know them.

I am about 3 weeks into the project now and I have got my Arduino board, and the frame with all axis have been built. I ordered some 608 bearings from the VXB shop on eBay as I need these at each end of the rods. I have also ordered all the parts I need to make the ramps board. Slowly over the next 3 to 4 weeks I get the parts. Again, this time while waiting I researched and prepared for the next step(s).

Just a quick note about the hot end. A bit early for the hot end and extruder, but I know that this is most likely going to be the hardest parts to make. Remember I can’t print a wades extruder etc, before my printer is complete. Do I purchase one, or what do I do? During these weeks of building and researching I also spend some time trying to design these 2 parts. At least I need to understand as much as possible in regards to how the hot end works. More about that later. My plan has always been to make everything myself if I can.

Wow, the bearings are here and I finish off the rods and stepper motor installations in approx 1 week. I am in no hurry.

Stepper motor for Y axis. I used same method of mounting the X axis stepper.

The couplings between rods and motors must be good to avoid any backlash. I made mine by using a water tube. On the motor shaft I put 20mm long 8mm o.dia. tube with a tight fit. My motors have got a 6mm shaft. Then I put a 40mm long  tube with 8mm inside diameter on top of this and then pushed the 8mm threaded rods in the other end. The tube now holds the rod and shaft together. At the moment there is a lot of backlash in the coupling so I took a brass shim and cut to size. Bend it around the tube and put a hose clamp on the outside. This stiffens the whole coupling and backlash is eliminated.

This is how my couplings look like. And they work very well.

I have not had any problems with this method and it is very cheap to make. Instead of buying brass shim just cut up a tin can (fruit, tuna, beans…) It should do the same trick. But be careful, it is very sharp. Tube and hose clamp from hardware store.

Coupling on X axis. You can just see the tube under the brass shim.

Next I solder the ramps board and also order 4 pololu stepper drivers. The ramps board was not too hard to solder, but it was a bit fiddly as some of the components are quite small. Anyway, I carefully examined all my solder joints 2 or 3 times just to make sure they are ok. I would not be happy if I blew it up just because I rushed it. One warning when it comes to the headers you need for the ramps board. Do not just get any type. They must be able to handle the current that your board is going to supply to the stepper motors. Ideally 2amps minimum. They can be hard to find. I found that the majority of headers sold in normal electronics stores are only rated at 0.5amps. So be careful when you shop for the headers.

I finished my ramps board and while waiting for the pololu drivers to arrive (A4988), I modified a PC power supply by adding screw connectors on the top of it. Removed any cabling not used. I ended up with GND, +3v, +5v and +12V. My power supply can deliver 18amps on the 12V rail and that should be ok. Hot-end about 3amp, heated-bed 10A and a few amps for the motors, should just do it.

My modified power supply.

Have a look here ://

for how to modify a PC power supply, or you can always use it the way it is and get some connectors to suit.

The pololu drivers have arrived and I am both nervous and excited. I have read and taken advice from other reprappers and ordered some heat sinks and also arctic silver epoxy resin for my drivers. Electronics likes to run cold and it is cheap insurance to glue a few heat sinks on the chips to keep the heat down. I adjust the pot on the drivers to minimum and then turn it up about 25 percent. Without heat sinks yet (they are on their way) I am not going to play games with my drivers. I connect the power to the board and though my printer is not ready yet, I can test the movement of the axis. I use pronterface as the host software. It is easy to use and works very well. The motors happily moves my x-axis, y-axis and z-axis as well. Time for celebrating. Yes, it works. I ended up setting most speeds to 275mm/min. This is close to the max the motors will go without loosing steps or losing the plot all together.

Well, I know this may have sounded easy and yes I did have lots of other issues to sort out. I had to change many configurations in the firmware. The float speed, max speed and lots of other parameters before I had it running smoothly. But because I had read about this beforehand and realised that lots of others had been through this before me I was prepared. Such as installing end stops at the max and not min end of my table resulted in changes like reversing Y-axis, enable and disable pins in the firmware. I also came across something I think could be a bug in the firmware, needs to be confirmed. After I enabled max end stop on Y, I could no longer upload my firmware to the arduino?? I “freaked” out for a minute, as I was not sure what was going on. I tried with a fresh untouched firmware, and that worked ok. I then looked at my changes and took a stab in the dark. I had just enabled max end stop on Y, but I left the min endstop on Y enabled as well. What if I disabled the min? In other words. only have max or min enabled at any time. It worked. (This may be just with my setup..I don’t know and have not tested it to confirm).

Ok, I now have a printer with x,y and z-axis working. Next step was to calibrate. I attached a specially made pen (spring-loaded tip) to my z-axis and plotted some drawings on a piece of paper. By having the tip spring-loaded I could plot several layers. I used Autodesks 123D Beta release and drew up a square 100 x 100 x 1. Plotted it and calibrated by adjusting the firmware until my printer plotted 100 x 100.

Regarding 123D. I loved that program up until they released Beta9. You now need to be connected to the internet and log in with your account to be able to save your file as an STL file. In my opinion a terrible mistake by Autodesk, but not unexpected. Hold on to your Beta8 if you have got it and don’t have internet access on your machine.

Wow this is getting fun!

My nieces daughter (she is 5) happened to be there and we plotted her name on a piece of paper. Well, it was mirrored?? What! I realized soon that my Y-axis was measuring wrong way. I should have known as I could see it in pronterface. More adjustments in the firmware, and 2 days later, it printed the right way.

I have now done about 50% of my build. I say 50% as I reckon hot end and extruder will be the hardest part to get working and most time-consuming. I am going to make my own. And no, I do not have a lathe, I’d love to get one, but can’t afford and justify that expense at the moment. See my tool list on the tools page.

I sourced some 3/8″ or 8mm threaded brass rod from the hardware store. I made a nozzle with a hole of 0.35mm dia. Found a supplier for some 10mm and 16mm diameter PTFE. Made up a hobbed bolt and heat block. Made a small heated bed and was ready to give printing a try. I had already ordered some 3mm ABS. Yes, I chose ABS as my medium. The reason I started with ABS was that it requires the hottest nozzle and the hottest heat bed. If I can reach temperatures for ABS, I can work with PLA. The difference in heating a nozzle to 230 degrees compared to 180 is quite a lot. The difference in heating a bed to 110 compared to 60 is even bigger. If I can get my machine to stay at these temp during print, then I know I can do PLA later. (At least in regards to the temperatures needed)

When I started on this project I thought 3 months should be enough time for me to be printing. That meant that by mid to end January 2012 I should be ready to print. I did my first print 2 weeks before Christmas, 1 month ahead of schedule. I am very pleased with the progress. But, it was going to take another month before I had a reliable hot-end working. And getting a working hot-end almost “broke” me. I tried many, many different designs and I was almost going to give in and order one online when I said to myself, Jan, us humans can do anything, if we can put a man on the moon in the 60’s and today we are destroying a whole planet, surely I can make a hot end that works? And I did! I cleared my head and sat down calmly and looked at my attempts, looked at what others had done, tried to analyse what’s actually going on here, and there it was, a working hot end. It was a fantastic feeling knowing I had done it. I can now print very reliably and for very long times. This does not mean you have to make a hot end yourself. I just decided that I wanted to do it. Nothing wrong getting one from someone who sells them. It would probably work out a lot cheaper too, but you can’t buy the excitement and pleasure of designing and making something yourself, especially when it works. But then again, why reinvent the wheel, but that’s just me.

My first hot end design.

I tried quite a few designs before I got one which seems to work quite reliably. Funny enough, it is very similar to my first design.

Extruder and Hot end

I have already printed a few parts for my next printer and they are looking quite good. I think so, considering that this is a timber construction with slide rails. My next printer will have smooth rods with linear bearings and belts for speed.


For those who wonder how slow it prints it takes about 5 to 6 hours to print the large wheel for the wades extruder. This means that any small part takes around 2 hours to print. The long printing times puts a lot of “stress” on the extruder and hot end. The main body for the wades extruder takes 15hrs plus to print.

As I mentioned earlier, I use pronterface as the host software but Slic3r to generate the gcode for the files. Slic3r is fast and I find it easy to use and configure. There is also a program called Netfabb which I use to repair stl files with. I also use Netfabb to place parts/files the correct way up. That’s right. When you start to design your own parts, you will most definitely find that one day you need to turn a part upside down to be able to print it. After you have exported the file as an STL file you open it up in Netfabb.  Select the menu icon that says “Align to bottom plane”, then double click on the side you want to face down onto your table. Then in the “Part” menu, select “Export Part” , “as STL”. Fantastic!

Well, here is my printer, fully operational and printing ABS without any problems.

As you can see in the picture, I have also installed a fan to keep my Ramps board cool. Fan and heat sinks on all the pololu drivers. In this photo the fan for the hot end is detached. I now leave that fan connected to the heat sink at all times when printing. The nozzle heater does not have any insulation. No need, but it would most likely reduce the warm up time. Maybe on the next one.

Well, I sort of got there, and I am quite excited about this whole concept. I consider myself a noob to 3D printing but boy did a learn a lot through this exercise. I still have lots to learn and are looking for ways to improve the quality of my printed parts. I am also looking into using the Marlin firmware, but I may just leave that for my next printer.

For any of you out there who are thinking about making a printer, go for it. There is plenty of stuff to read on the forums. Plenty of help to get when needed. If I can do it, so can you. And when you print your first part, it’s like watching magic as the part appears in front of you. It makes you feel real good.

Go on, give it a try!


I would like to thank Adrian Bowyer and his team for starting this and all those of you who make up the reprap forums for all the information you have shared out. To those of you working on the electronics/hardware, software/firmware, designing parts, what a fantastic effort.

And a special thanks to reprap member/user Stoffel15 for his contribution of the Wolfstrap design.

Thank you !

Kind Regards

Jan (IceMan)


11 Responses to Building My First 3D Printer

  1. Neel Aundhia says:

    I need some help regarding how to setup the firmware.
    pls help…..

  2. Neel Aundhia says:

    Which motors did you use??
    These don’t look like the nema 17’s.
    BTW can we use stepper motors from the 2d dot matrix printers.
    Please Reply………

  3. Neel says:

    Which 4 do u use.And btw can you guide me to a source which deals with all these colour codes and wires of a stepper motors.

    • 3dprinterman says:

      Google it.
      It is easy to measure with a multimeter as well. A 6 wire motor has 3 wires per coil. There are 2 coils each with a wire at each end and a wire in the middle. This way you get 6 wires and 4 coils if you wish.
      3 wires are connected through the coil. To find the end wires you use the 2 that has the highest ohm reading.

      Hope it helps

  4. ben says:

    how do you know what kind of threaded role to use on the 3d printer. like what kind of thread you know. and if i where to build a 4 ft long by 3 ft wide by 3 ft tall bed do you just enter those dimensions in on the program for the bed of the whole thing. if so, the stepper motors what kind of stepper motor would i use. because my bed would be 4 ft long. i am thinking about using v grove bearing to make the carriage slide back a forth instead of linear shafts thanks ben

    • 3dprinterman says:

      I just use normal threaded rod. The important thing is to be able to control backlash. You can get expensive rods with acme thread and no backlash.
      Just a bit of warning. A large machine like you mention may be ok for PLA but not ABS. ABS warps easily when printing larger parts and 200×200 bed is normally more then big enough.
      By all means make a lrge printer, but just be aware of the difficulties printing large ABS parts and the heating of such a large build platform.
      Unless of course you are printing with a different medium.
      The stepper motors just need to be powerful enough to move your table and also be able to change direction of your table fast. Big table = big mass.
      All the best

  5. Joe says:

    Just looking into building my own printer. Have been given a load of old scrap printers and scanners but have yet to see what motors they have. Cheers for the very help full post

    • 3dprinterman says:

      You are welcome.
      I am sure you will have some good fun, and let me know how your printer turns out.
      And enjoy that first moment when you print your first part…its amazing.

  6. abdul rizwan says:

    Need help on step syn stepper motor usage on ramps and firmware uploading and testing the motors and 6 wires motor wiring.I having step syn 103H6703-0456 type motor. I have tried to check it, but it didnt work. Please help me out.

    • 3dprinterman says:

      When you said you tried to check it but it did not work, was it the testing that did not work?
      You test it by using a multimeter. 3 of the wires should be connected to the same coil inside the motor. The other 3 should be connected to the second coil inside the motor. To find which 3 wires belong together set you multimeter to measure ohm (resistance) and set it so it measure very small values. Now you connect one probe on your multimeter to one of the wires. The other probe you connect to any other wire. If you get a reading on your meter then this wire belongs together with the other one which is attached to you meter. You know have 2 wires that belongs together. Take note of the colors that belongs together. Keep the first wire you connected to the meter connected but disconnect the 2nd one. Now connect any of the last 4 wires to the probe and you should find that 1 of these wires gives a reading on you meter. You now have 3 wires that belongs together. The remaining 3 wires belongs together as well. You know have 2 sets of wires. Each with 3 wires. Not sure of the colors but maybe black/white/red is one coil and yel/blue/brown is the other coil. If they are black/white/red then measure between black and white and write down the measured value (lets say you measured 2ohm). Now measure between black and red and let us say you get 4ohm. Now mesure between white and red and you should get 2ohm. In this example the black wire is connected to one end of the coil and the red is at the other end of the coil. The white wire is connected to the center of the coil. I would use black and red wires and just isolate and ignore the white one. Now do the same with the other set of 3 wires. The 4 wires you end up with should be connected to the ramps board. If your wires colors are black/red and yel/brown then connect them in this order black/red/yellow/brown as a1 b1 a2 b2. If motor goes wrong way reverse the connector (brown/yel/red/black). Set the trimpot on your driver to just around the middle position and also you need to have the jumpers installed under the driver for the step/half step etc. I normally have all 3 jumpers installed. Hope I have not confused you.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.