Introduction: Custom Low Budget 3D Printer

About: I like to make stuff. All kinds of stuff! ZepLabs HandCrafted Nikos Zepidis

Hello all! So this time we are making a printer!

It is all about an FDM (Fused Deposition Modeling) , CNC (Computer Numerically Controlled) , cartesian, cantilever 3D printer. So basically when it is done, you just provide a plastic string to it, which it uses in different ways to produce all sorts of different plastic 3D objects! Which is kinda cool...

So let's get into it!

This whole make is also covered in video on my yt channel, so that you can have a better look if you decide you also want one of those for yourself. It is spread over 5 different videos, each one serving its own purpose, and covering pretty much everything you are gonna need, but I will embed the last one of them here so that you can have a look and see what we are talking about before even proceeding into reading this whole text that I will be writing underneath!

Step 1: The Selection of It.

Ok, you busted me! 3D printers are nothing new, they have been around for quite a lot of time now, they are widely spread, vastly developed over time, and very very well documented amongst open-source communities around the globe..

But making one yourself must be quite innovative, right??!

Again, not really! Well, while in my circle I don't have any fellas who made their own printer (or any CNC machine for that matter!), this is not a very rare phenomenon. There is a huge amount of guys and gals, who made their own printer, and they have also made some remarkable machines...

Another thing is that nowadays you can buy a low-end commercial printer for quite cheap (around 300$)and start printing right away, saving the labor, mess, time and possible headaches you were gonna have if designing and building your own one...

So as you understand, regarding this project, there is quite some thinking to be made, and quite some decisions to be taken before you even start building anything!

In my case things were fairly easy though.I didnt have to think too hard, for the simple reason that I like to build stuff! As much as I can, whenever I can. Even if the cost meets the one you'd have when buying a ready-made such machine (or in some cases, even if it exceeds it) I am always a supporter of building your own stuff whenever the circumstances allow it. This way you are developing your skills, you are building a much better understanding of the machine itself, so that you can operate it when done, further develop it, or even troubleshoot it, you can pick the design of it, implement your own style, but most importantly, it is the pure joy of it! Of course, every person is different, but if you ask me there is not much you can compare with creation.. Giving birth to a thingy that was conceived inside your head, and having fun while doing it!

So you guessed right, we are building one! But which one??

Now you could do this in a bunch of different ways. The physics of this machine, along with the broad development of it amongst so many different people, gives you a lot of flexibility when deciding which category your new-to-be-born machine will land into...

Printing technic, geometry, materials used,consumable materials to-be-used, controller's name it!Let's go through those really quick...

For starters, you have to decide which technique it is gonna use to print stuff. The two main choices are FDM(or FFF) and SLA printers.(stereolithography). The later ones use photosensitive resins and uv light which comes out of a screen , to build your model layer by layer. While they definitely have their advantages, we are gonna go with the FDM approach, since it is cheaper to use, to make, and quite a lot more versatile.

Now that we have decided we are building an FDM, we need to think about what materials we will be able to print with this machine. As I said, in those printers the material comes in a form of filament, a plastic string covered around a spool, which is melted and laid down here an there, to produce your 3D object layer by layer. But there is a bunch of different such materials. Luckily though, there is not a too bif of a difference in machine specs, to be able to print between all of them. The most demanding of them usually just require a heated, a heated surface for them to be printed on, so that they don't warp while cooling down, and worst case scenario, they also require an enclosed printing chamber, again for the same reason. Implementing such a heated, is not too much of a fuss, so we are gonna choose it either way, and use it if and when needed! The enclosure is a bit more trouble, so we are gonna skip it for now, since I can make one for the whole machine in the future, if I face any problems while wanting to print more exotic filaments. So there is that!

Now we need to talk geometry.

On the bottom line here, the printhead of this thingy needs to move on three different axis, in order to produce a 3D result! Now, like when we made our cnc router, you could do that in a bunch of different ways. I prefer a cartesian geometry,as it looks cleaner to my eye, more straight forward and more broadly used, thus easier to produce Gcode for it. An alternative to that would be a coreXY machine for example, which you can google later on, as this instructable is already gonna be long enough as it seems , and I prefer not to get into that at the time!

So now that we picked cartesian, we have to pick for a fixed or moving gantry machine.This is not a huge deal, as it wont make too much of a difference. I always seem to prefer fixed gantry machines, as they seem to me easier to build sturdy, cheaper (screws are quite cheaper than bearings!) and a bit of idiot-proof, as they require much less measurement, and significantly less things can go wrong with them. On the downside, they take up much greater space than what a moving gantry machine would, both having the same printing capacity. Now this fixed gantry, as the name implies is ficed in the rest of the body of the machine, usually in both sides. Another alternative to that is to just fix it on one side, like those huge cranes you see on construction sites. I am choosing this last approach, since it looks a lot cooler to my eye, plus that this machine being a printer and not a CNC router wont live to see much loads,so I can easily get away with leaving one side of the gantry floating in mid air! This whole architecture is called a cantilever, which as you may have seen on the photos I slightly messed up with ,to name my new printer the "CandyLever" (it is gonna look like a piece of candy when we paint it ;-) )

Last but not least, we have to decide on the materials used.

You could use whatever you like here! Aluminum profiles, steel tubes and bars, plastic printed out of another printer, you name it. Well, I like wood. In fact I love wood! And steel! and that's what I am gonna use...

Now let' come up with a design...

Step 2: Let's Make a Model for It!

Now that we have decided on all those things, let's make a 3D model of what we have in mind, roughy!

I did always find that at least for big projects like this one it is easier to work if you have a 3D model of the thing you are building. It is easier to measure everything, you have sorted the basic dimensions when designing, so it later leaves you only cutting and fitting, you minimize the chances for two of your parts to not fit together, and so on...

Everything is just easier!

So I opened up SketchUp and made a model for it. This one is in actual dimensions, so I am also gonna leave it for you here, in case you want to duplicate the whole project.

As you can see, some things changed later on, like where the controls or the LCD screen were mounted, so I will try to find the time to update this file to match the exact form of the finished machine, but since the main bodywork is the same in both cases, I am leaving this one here in case it helps somebody..

Step 3: Materials Used

Ok, as I said, it is gonna be wood and steel tubes. And motors, electronics,pulleys, stepper drivers, extruders,hotels, fans, belts, shafts, couplers, power supplies, connectors...

I am just messing with you! Don't get frustrated. We will now sort everything out, and it will be as easy as a walk to the grocery store!

So for the chassis of the machine, I used baltic birch plywood and a square steel tube which is 20 by 30 mm. The plywood measurements you can take exactly out of the SketchUp file, but it was mostly 15 mm thick, cut in 10 cm wide strips, which I later cut to form the frame, plus two 6mm thick panels, of which I made the upper and lower caps of it, plus the front panel where the screen will be mounted.

As far as the rest of the materials go, there you have them:

(the links below are affiliates, so if you buy through those I may also make a dime. Not at your expense! Just saying...)

-Controller kit (including stepper drivers, LCD screen & controls):

-Stepper motors for X,Y,Z axis

-Stepper motor mounts(2x)

-Power supply(24v, 250W)



-Pulleys for X,Y motors (x4) (20 tooth, 5mm bore,10 mm belt width)


-Z axis threaded rod(50cm)

-GT2 belt for X,Y movement(10 mm wide)

-Buck converter( to make 12 V and power the arduino with)

-8x LM12UU linear bearings for Y and Z axis carriage

-2x LM8LUU longer linear bearings for X axis carriage

And that was about all. Besides those you are also gonna need some screws, bolts, nuts which I bought locally, along with some 12 mm shafts (around 2m for Y and Z) and some 8 mm shafts (around 1 m for X axis) which I either bought locally or salvaged from places! (old printers are always a good source for nice chromed 8 mm shafts for example!)

Step 4: The Making!

Now it's time to make the thing!

The actual making of all the chassis and the mechanical parts is pretty straightforward if you have a look at the digital model. Besides that, I strongly suggest you have a look at the first two videos of the make if you decide to reproduce that little thing! They are going to explain better, than any text I would write here could!

The important stuff here is to get all your axis shafts parallel to each other so that none of your carriages will bind while moving. A good practice to do so is by drilling both the end pieces that will hold your axis shafts at the same time by clamping them together. Another thing you want to keep in mind is that you also want all your axis to be as square to each other as you can get them. The way this machine is designed allows for micro-adjustments, to get this perfect when ready, but the more time you put into this in the beginning, the easier your life will be towards the end. That said, watch the videos I embedded here, and get started! You'll have it ready in no time!

Step 5: Wiring Everything!

Wiring everything is easier than it may sound! I've left you a wiring diagram above, which if you have a look at, I am sure you will have no questions left unanswered!

One thing to point out here is that because I have chosen to run this machine on 24 V, just to give it some space to breathe (more Volts, fewer Amps ;-) ) I have to run my Arduino on a separate power supply ( it only works up to 12 V. Any number above that and it will smell funny, trust me!). I am taking those 12 V out of the same 24 V power supply, by using a buck converter to bring it down to 12V.

Another thing is that, while all my loads here ( hotend heater, heated) can work both on 12 and 24 Volts, there is a tiny little fan on the hotend, which in my case is built to work on 12 V (I hadn't put much thought back in the day when I bought it!). So I could either replace it, or use an LM7812 to power it from the ramps shield, but currently, and just to get the printer running, I am also feeding it from the buck converter alongside the Arduino...meaning that it works constantly...

This is not much of a problem, as this fan is there to work pretty much all the time, making sure that our hotend will preserve the desired temperature just on the very tip of it, but I will make it right some day soon.

So after we've wired everything, we need to make some small tweaks and adjustments, and we'll be printing stuff in no time!

Step 6: Firmware and Setup.

Now in order to use this little thingy, we need some sort of firmware to control it.

It will live inside our controller, Arduino Mega, and it will run everything. It will store the settings into Arduino's EEPROM, it will the encoder, LCD, SD card reader, it will read the Gcode files and translate them to motor movement, it will run the house!

There is a lot of alternative such firmware that you could use here, but we are gonna go with Marlin. It is probably the most widely spread one out there, and it is what I 've been also using on my also custom CNC router, and it has been working like a charm for over 3 years now for me. So why change it?!

This one is open-source and you can download it from here.

There on their site, you can also find pretty straightforward directions on how to flash it on your Arduino, and get started. But before you do that, you are gonna have to configure it a bit...

Now, this piece of code is written to work with a bunch of different machines. They can be different on hardware, on kinematics, even on the controller they are using (told you Marlin is awesome!). So you have to let it know exactly what you are using it with!.

Luckily, this procedure is fairly simple, and it shouldn't take long. All you need to do it search between the header files of the zip you downloaded, for a file called Configuration.h. This one you need to open with a text editor, and tweak a bit to have your machine configured. This procedure is straightforward, as the file is full of comments explaining which thing does what, in addition to Marlin's website where, again, you can find documentation for everything!

Besides that, I will also leave you my configuration file, which you can use as-is if you used the same hardware as I did.

And now that you have also your firmware uploaded, you have to calibrate your machine....

Each one of your steppers has to perform 200 steps in order to complete a full revolution in either direction. If you use half-stepping mode, those steps jump to 400. If you use 1/8th microstepping, they now jump to 1600. Besides that, for a full revolution of your X-axis stepper let's say, the distance that your X carriage is gonna move also depends on different factors, such s if you are using a threaded rod or a belt to carry the movement, and if you are using a belt, what is the circumference of your pulley the is bolted onto your stepper's shaft, and so on...

Long story short. For each axis of you machine, you have to let your controller know how many steps the according motor has to perform, in order to move the according carriage for one mm. And it calculates from there! This number you will find out through an trial and error procedure, which I have covered in the last video of this make, along with everything else I have mentioned here on this last paragraph!

You are ready to print!

Step 7: Your Machine Is Ready!

You are now ready to print for the first time!

Of course, there is a ton of stuff we could further develop on this machine, but if you are anything like me, at this point you are gonna be impatient enough to watch it moving, printing stuff!

Now the procedure you need to follow in order to print something with such a machine is a whole different story since you've opened a whole new world you need to explore! But here are the basics...

In order to print anything, you are firstly gonna need a digital 3D model of it, in an .stl file. So you could open up your favorite CAD software, design something, and export an stl of it. But luckily, this is not the only way to obtain one of those! 3D printing is so popular nowadays, and so open source, that there are already a lot of 3D model libraries. So you can visit one of those (like Thingiverse) and download a model of your liking to make your first print! A popular choice for such occasions is 3DBenchy, a tiny little 3D boat, which is probably the most printed little thingy globally. It is what I have printed and you can see in the photos above, and it is called a bench because it is used as a benchmark, to see what your printer can do or even what is wrong with it (it implements a series of holes, overhangs, demanding corners etc.)

So once you have decided on the 3D model and you have your stl file, you are gonna need a slicer. This program takes your model and, as the name implies, slices it into a whole bunch of layers, for your printer to print on top of each other, one at a time, bottom to top. You just throw the model, make some basic settings, like the temperature you are gonna print in, the material, the amount of infill (3D printed objects are usually hollow to a degree), and so on. And it produces the Gcode file, the machine code that your printer is gonna use to produce the actual thingy!

Again there are a lot of different options for such a Slicer, but I used Ultimaker's Cura since I find it pretty straightforward.

Step 8: Epilogue!

Now, all and all I am very happy with how this machine came out, and that is partly the reason why I share it with you, and suggest you make yours! But I don't consider it a finished project just yet!

There is a ton of stuff that we could add to this machine, to make it even better..

Endstops, probes, dual extruders, trinamic stepper drivers, filament holders, print area blowers, you name it!

And I intend on adding those all!

So make sure to follow me here on Instructables or on my youtube channel, if you don't want to miss the further development of this (or other!) projects!

Until next time, I wish you happy making, happy printing...and have a nice one!

Zep out...

Anything Goes Contest 2021

Participated in the
Anything Goes Contest 2021