Introduction: EWaste 60$ 3DPrinter

Picture of EWaste 60$ 3DPrinter

This project describes the design of a very low budget 3D Printer that is mainly built out of recycled electronic components. The result is a small format printer for less than 100$.

First of all, we learn how a generic CNC system works (by assembling and calibrating bearings, guides and threads) and then teach the machine to respond to g-code instructions. After that, we add a small plastic extruder and give an overview on plastic extrusion calibration, driver power tuning and other few operations that will bring the printer to live. Following this instructions you will get a small footprint 3D Printer that is built with about an 80% of recycled components, which gives it a great potential and helps to reduce the cost significantly.

On one side you get an introduction to machine building and digital fabrication and on the other side you get a small 3D Printer built out of reused electronic parts. This should help us to be more conscious about the big problems related with e-waste generation.

Step 1: Step 1: X, Y and Z Axes

Picture of Step 1: X, Y and Z Axes

Needed components:

2 standard CD/DVD drives from an old PC.

1 Floppy disc drive.

We can get this components at no cost in a waste station in our neibourhood. We want to make sure that the motors we get from the Floppy disc drives are stepper motors and not DC motors.

Step 2: Step 2: Preparing Motors

Picture of Step 2: Preparing Motors


3 stepper motors from the CD/DVD drives

1 NEMA 17 stepper motor that we will have to buy. We use this type of motor for the plastic extruder where more power is needed to drive the plastic filament.

CNC electronics: RAMPS or RepRap Gen6/7. It is important than we can use the Sprinter/Marlin open firmware. In the present example we use RepRap Gen6 electronics but you can choose according to price and availability.

PC power supply.

Cables, female connectors, heat-shrink tube.

The first thing we want to do once we have the mentioned stepper motors is to solder the cables to them. In this case its 4 cables for which we should maintain the corresponding color sequence (described in the data sheet).

Data sheet for CD/DVD stepper motors:

Data sheet for the NEMA 17 stepper motor:

Step 3: Step 3: Preparing the Power Supply

Picture of Step 3: Preparing the Power Supply

Next step is to prepare the power supply in order to use it for our project. First of all we connect the two cables with each other (as indicated in the picture) to allow the direct power-up with the supply's switch. After that we select one yellow (12V) and one black cable (GND) to power the controller.

Step 4: Step 4: Arduino IDE

Picture of Step 4: Arduino IDE

Now we are going to check the motors. For that purpose we need to download the Arduino IDE (a physical computing environment) that can be found at:

We need to download and install the Arduino 23 version of it.

After that we want to download the firmware. We have chosen Marlin which is already configured and can be downloaded under:


Once we have installed Arduino, we will connect our computer with the CNC-Controller Ramps/Sanguino/Gen6-7 with an USB cable, we will choose the corresponding serial port under Arduino IDE tools/serial port and we will select the controller type under tools/board (Ramps(Arduino Mega 2560), Sanguinololu/Gen6(Sanguino W/ ATmega644P – Sanguino has to be installed inside Arduino )).

Main parametres explanation, all of the cofiguration parameters are in the configuration.h file:

In the Arduino environment we will open the firmware that we already downloaded File/Sketchbook/Marlin and we will see some configuration parameters before we upload the firmware on our controller.

1) #define MOTHERBOARD 3 value, according to the actual hardware we are using (Ramps 1.3 or 1.4 = 33, Gen6 = 5, …).

2) Thermistor 7 value, RepRappro htoend uses Honeywell 100k.

3) PID this values makes our hot end more stable in terms of temperature.

4) Steps per unit, this is a very important point in order to configure any controler (step 9)

Step 5: Step 5: Printer Control Software

Picture of Step 5: Printer Control Software

Printer control software: there are different freely available programs that will allow us to interact and control the printer (Pronterface, Repetier, …) we are using Repetier Host, which you can download from It's easy to install and integrates a slicer. The slicer is a piece of software that generates a sequence of sections of the object we want to print, associates those sections with layers and generates g-code for the machine. Slicers can be configured through parameters like layer height, printing speed, infill, and others, that are important for the printing quality.

Usual slicer configurations can be found under following links:

Skeinforge configuration

Slic3r configuration

In our case we have the Skeinforge profile configuret for the printer, that you can integrate in the reperier host software.

Skeinforge profile link:

Step 6: Step 6: Wireing and Current Intensity Regulation

Picture of Step 6: Wireing and Current Intensity Regulation

We are now ready to test the printer motors. Connect the computer and the machine controller using an USB cable (the motors should be connected to their corresponding drivers). Run Repetier Host and activate the connection between software and controller by choosing the corresponding serial port. If the connection was successful, you will be able to control the attached motors using the manual controls at the right.

In order to avoid an overheating of the motors during the regular use, now we will regulate the current intensity that every motor can get. This is an important operation in order to avoid motor overheating or step loss.

For this we will connect just one motor at a time and we will repeat the operation for every axis. For that we will need a multimeter attached in series between the power supply and the controller. The multimeter has to be set in Amp mode (current): see figure ?.

We then connect the controller to the computer again, power it and measure the current with the multimeter. When we manually activate the motor using the Repetier interface, the current should rise by a certain amount of milliamperes (which is the current that goes to the activated stepper motor). For every axis a slightly different current is needed depending on the job that every stepper has to carry out. You will have to adjust the small potentiometer on the stepper driver and set the current limitation for every axis according to the following reference values:

The board drives a current of approximately 80mA

We assign a current of 200mA to the X and Y-axis steppers.

400mA for the Z-axis because it needs more power to lift the carriage.

400mA for the extruder motor because it is of a bigger type.

Step 7: Step 7: Building the Machine Structure

Picture of Step 7: Building the Machine Structure

In the following link you will find the necessary templates to laser cut the frame parts that are not recycled. We have used 5mm thick acrylic plates but you can use other materials, like wood, according to availability and price.

Laser Cut file:

The design of the frame makes it possible to build the machine without glue: all the parts are assembled using mechanical joints and screws. Before you laser-cut the frame parts, make sure to adapt the motor hole positions according to the CD/DVD parts you have recycled. You will have to measure and modify the holes in the CAD template.

Step 8: Step 8: Calibrating the X, Y and Z Axis

Although the downloaded Marlin firmware already has a standard calibration for the axis resolution, you will have to go through this step if you want a precise printer. Here you will tell the firmware the steps per millimeter that your machine actually needs. This value depends on the steps per revolution of your motor and on the size of the thread in the driving rod of your axes. By doing that we make sure that the movement of the machine actually corresponds to the distances in the g-code.

Knowing how to do that will allow you to build a CNC-machine of your own with independence of the component types and sizes.

In this case, X, Y and Z axes have the same threaded rods so the calibration values will be the same for them (but that might not be the your case if you use different components for the different axes).

We will have to calculate how many motor steps are needed to move the carriage 1mm. This depends on:

The pulley radius.

The steps per revolution of our Stepper motor.

The micro-stepping settings in the electronics (in our case 1/16, which means that for one step signal, only 1/16 of a step is performed, giving a higher precision to the system).

We set this value in the firmware (stepspermillimeter).

For the Z axis:

Using the Controller interface (Repetier) we tell the Z axis to move a certain distance and measure the actual displacement.

As an example, we tell it to move 10mm and measure a 37.4mm displacement.

Being N the number of steps defined in stepspermillimeter in the firmware (X=80, Y=80, Z=2560, EXTR=777.6).

N = 2560

N = N*10/37.4

The new value should be 682.67.

We repeat this for 3 or 4 times recompiling and reloading the firmware to the controller, so that we get a better precision.

In the present project we have not used end-stops in order to build a more affordable machine but they could be incorporated easily and the firmware is ready for them. Heaving end-stops makes homing the machine more easy. The lack of them will force us to bring the machine manually to the origin of the printing area.

We are ready for a first test, we can use a pen to test if the distances in the drawing are correct.

Step 9: Step 9: the Extruder

Picture of Step 9: the Extruder

The filament drive is composed of a NEMA 17 stepper motor and an MK7/MK8-type drive gear that you will have to buy. You will also have to 3D-print the direct-drive extruder parts, which you can download here.

1) Extruder idle:

2) Extruder body:

3) Hot end Holder:

The filament, after being pulled into the extruder by the filament driver, is then fed to the heater chamber or hot end. Between filament drive and hot-end, the filament is guided inside a flexible teflon tube.

We will assemble the direct-drive as seen in the picture (Fig X.) attach the stepper motor to it and attach the whole to the main acrilic frame.

In order to calibrate the flow of plastic we have to fit a piece of the plastic filament and mesure a distance (for example 100mm), put a piece of tape in this. Then go to Repetier Software and click extrude 100mm, mesure the real distance and repeat the Step 9 (operation).

Step 10: Step 10: First Extrusion

Now the machine should be ready for the first test. Our extruder uses 1.75mm plastic filament which is easier to extrude and more flexible than the 3mm diameter standard. This will require less power to drive our small machine than the 3mm filament would. We will be using PLA plastic which is a bio-plastic and has some advantages compared to ABS: it melts at lower temperature, it attaches easily to the printing bed and it has very little retraction.

Now, in Repetier Host, we want to activate the slicing profiles that are available for the Skeinforge slicer. You can download some profiles from the following link.

We want to start printing a small calibration cube (10x10x10mm) because it will print very fast and we will be able to detect configuration problems and motor step loss by checking the actual size of the printed cube.

So, to start printing, open an STL model and slice it using a standard profile (or one you downloaded) with the Skeinforge slicer: we will see a representation of the sliced object and the corresponding g-code. We will preheat the extruder, and when it has reached the plastic fusion temperature (190-210C depending on the plastic brand) extrude some material (press extrude) to see if the hot-end and the filament drive are working properly.

We bring the extrusion head to the origin coordinates (x=0, y=0, z=0) taking care that the head is as close as possible to the bed without touching it (take a paper as separator). That will be the home position for the extrusion head. From there we can start printing.

Step 11:


DhanlyC (author)2018-01-19

Anyone has the files for the extruder parts? Badly need it thanks

maxpayne28 (author)2018-01-15

Anyone has all the files for the making? The links are all broken

phoebeknight39 (author)2017-12-01

Hey, does anybody have the extruder CAD files?

Laggger164 (author)2017-08-30

Guys, here are links to the draft files one of the users here posted a long time ago. I am in the process of making this and I used his frame draft file to cut out an acrylic frame by hand (hard and tedious, but I did it! Next time I am making a proper CNC machine)

.dwg format:

.bak format:

There are no viruses in those files, they are just plain the draft files. Nothing else.

I hope this helps!

omega69 (author)Laggger1642017-10-22

Hi Laggger164, I'm preparing to make this 3D printer. But i can't find the dropbox files posted here. Since you have made one, can you please provide the dropbox files to me. Regards.

Laggger164 (author)omega692017-10-23

I have posted those files on

I don't have a dropbox account.

omega69 (author)Laggger1642017-10-23

Thank you for the marlin guide and Zippyshare links. I'll try it and see how thing goes.

Laggger164 (author)omega692017-10-23

Also, I only have the frame files. I haven't used any of the others, since the files for the firmware are extremely outdated and the extruder needs to be 3D printed.

I configured Marlin from the ground up using this guide:

Though you will have to use some common sense too.

For the extruder I just ordered one of those Makerbot Mk8 clones from china. They work good enough, it's just that sometimes the filament doesn't want to fit inside.

dndubins (author)2017-10-15

Hi, nice instructable. I made a similar printer and have a tip for those little CD-rom motors overheating. For my build the CD rom motors worked ok in the x and y directions, but I needed to resort to stronger z-axis 12V steppers I bought on eBay. My first build I burned through a few CD-rom motors from overheating, and really its because they are 5V motors. 12V is too much for them, even with tuning the current down on the pololus. So I put 5ohm, 5W resistors on each wire to the stepper motor, and it splits the voltage in half. Now the motors don't get hot (careful though, the resistors do!). The more elegant solution is to run the ramps board at 5V and use the lower-voltage pololus, but I needed 12V for my z-axis.

Joshua Rupasinghe (author)2017-09-13

The Marlin is not available in the link. Please give me all the links.

grexai (author)2017-06-12

Hello there,
Nice project, one thing is not clear for me, how do you calibrate home positions without endstops ?

Laggger164 (author)grexai2017-08-30

You move the extruder by hand to the home position when the motors are turned off. Not elegant, but if you want to use endstops you will lose even more potential printing volume which is very scarce here.

tomislavf11 (author)2017-07-12

Can I use arduino uno for this project?

Laggger164 (author)tomislavf112017-08-30

If you have a way to control 4 stepper motors with it then yes, but a Arduino Mega with a RAMPS shield will be a lot easier. There are other boards available too, like Melzi, which can be a lot smaller and provide a-all-in one solution! However you won't be able to repurpose those for other projects later on, but the amount of effort that goes to building the damn thing is worth the standalone parts.

belongumdave (author)2017-08-16

Hello Mike, I am here because you are mentioned in All3DP, (congrats) as an inexpensive introductory kit for 3D printing. I am retired and also very interested in your kit kit and the message behind the build.

The links within these pages are nor connected.

Is there anyway to make these links active?

Or would you send me the links. (you may also have others responding)

Thank you, David

spiwocoal (author)2017-07-25

Hi, can youy upload the files again? Or can you say me the thickness of the frame please?

MathiasT3 (author)2017-07-19

Hi, can you please upload the files again? They are down.

Best Regards and thanks for the project.

biggles246 (author)2017-06-14

Very nice!

I was just wondering...

If I built this, could I later upgrade to a bigger print deck? I know I'd have to change a lot...

nabzim (author)biggles2462017-07-01

you would need longer linear-bearing rods and a longer lead-screw on the stepper motors, on both x and y axis.

use drawer-slides for bearings, and threaded rod for lead-screw.

but then you need bigger motors too...

carlos adriel (author)2017-06-14

Alguem poderia me mandar os moldes da estrutura ?

msameer39 (author)2017-06-11

Super awesome project

RitheshK (author)2017-06-01

Hey guys.I have an problem with stepper motors.Stepper motor just viberates and it doesnt move.

setsunakaede made it! (author)2016-07-18

I finally got around building one, be it a bit modified as I don't have access to either a laser cutter or a 3D printer for the extruder parts (okay, I DO have access to a 3D printer if I really want but thats not the point) so I had to hack my way through the build. But it works, and it works reasonably well actually. It set me back only $40,- on electronics, hotend and bowden tube!

PietroR4 (author)setsunakaede2016-11-04

Hi, i'm trying to work around it. Can you please explain how did you bypass the No3d printer problem. Thanks

setsunakaede (author)PietroR42016-11-04

Hi Pietro, you are trying to work around what exactly? And what No3d problem do you mean? I don't understand.

PietroR4 (author)setsunakaede2016-11-04

I needed to make myself clear whops :P

I am trying to build a cheap 3d printer for a school project ( i need children and teens to be able to play with it). The thing is i don't know how to get the extruder parts without another 3d printer/cnc machine. This made me courious about your hack! can you elaborate on that?


David LG (author)PietroR42017-05-29

It's been 7months, and you've certainly found an extruder, but may this be what you're looking for ?

The first repraps were very "low-tech" machines to build ;)

PietroR4 (author)David LG2017-05-30

Wow, that seems interesting! Thanks! :)

setsunakaede (author)PietroR42016-11-06

Hi Pietro,

I believe I explained how I made the extruder once or twice in the comments, basically I got "inspiration" from other extruders. Most of what I did on my extruder was done only with a saw, drill, file and needle file, the exception being the idler pulley - but only because I have a lathe at my disposal. You could also make the idler pulley using a drill and round file if you put your mind to it.

I don't have any detailed instructions as I made it up while I was building it and I didn't take any pictures. Basically what you want to build is a stepper motor with drive pulley (in my case, the pressed-on gear filed sharp with the needle file), an idler pulley with a lever and a spring to keep the filament pressed against the drive pulley and a filament pickup as close as possible to the pulleys. It's no rocket science, pretty much everything I used is either scrap or aluminum profiles from the local hardware store.

ModusPraxis (author)setsunakaede2017-04-28

Looks nice!!! Did you happen to keep all the dropbox files? Looks like they disappeared from the page here

setsunakaede made it! (author)ModusPraxis2017-04-29

Hi, theses are the only files I have, since these are the only files I actually downloaded and used. Everything else I figured out on my own, as you can see on the images I uploaded.

Good luck!

Hello, how is the SO you use for this project? I saw all this recycling project and I really liked how you did it but can not find planes as mount something like that or where to get the OS to the arduino.

DinarA1 (author)setsunakaede2017-05-12

привет, есть файлы? в этой статье их нет.

ModusPraxis (author)setsunakaede2017-04-30

Thanks a ton! :) :)

setsunakaede made it! (author)setsunakaede2016-12-09

I noticed a lot of people had questions on how I mounted the steppers, sliders, built the gantry, built my extruder, mounted my hotend.... so here are some more pictures, I hope they can be someone to some help.

Please note that my way is by no means the best way, it's just a way that worked for me. Also, I didn't design it, I just followed the tutorials here on 'ibles and on the internet such as the Marlin website - which is a great wealth of information.

Good luck!

AndrewG272 (author)setsunakaede2017-04-07

That looks great! Could you perhaps re-upload the links to the dropbox files? None of them appear to be working now.

95accord (author)setsunakaede2017-03-04

Very helpful images regarding the construction of the printer. How did you attach the spacer board that holds the extruder to the drive head of the Z axis?

DavidT330 (author)setsunakaede2017-02-15

Can you send me please that extruder link?

tiw_8 (author)setsunakaede2016-12-09

I do not understand the request for a picture step-by-step?

setsunakaede (author)tiw_82016-12-10

Huh? What do you mean...?

I didn't request for a picture step-by-step...???

Hey man, i'm back.

I finally got the pieces and mounted everything together, but i'm having huge troubles with clogging/jamming/heat creep (i can't define what it is). My researches indicate that the problem is due to poor cooling near the heatbreak. Which causes the heatbreak to heat and the filament to expand inside and jamming everything.

The printer can't extrude for more than 10 seconds without stopping. I tried PLA and ABS with several temperatures and have the same result. The tip of the filament that touches the heatbreak expands a little and get stuck.

I saw that you have in this picture some kind of mod to help cooling. Can you give more details about that? I'm using E3D v6 J-Head from China.

Do you have a fan blowing over the cooler block? If not, then there is your issue. The cooler block should be cooled actively at all times, as close to the heat brake as possible. (i.e. you should try to cool the bottom fins too)

Also check the alignment of all the parts in your hotend. My hotend was not straight on the inside so I had to drill it out quite far before things started working.

Do you have the all-metal heat-break or one with a PTFE liner? All-metal can run higher temperatures but is also more prone to heat-creep so it is all the more important that you cool the cooler block.

and please, can you show me other pictures of your cooler block plus fan?
and which filament you used? I failed with both pla and abs. I was able to print a few cm with AbS without clogging.

Yes, i tried with only the regular fan that came (a small fan with a blue tube) and didnt worked. Then i added another fan in the oposite direction and still does not work.
I have an all metal heatbreak.
One thing thats strange is that if i screw the heatbreak all the way in the heatsink, it will only stop with a small portion of the heatbreak inside the cooler block.
And when I screw the nozzle all the way in, the heatbreak has a small portion out of the heat block.
I tried to vary those positions. Screwing the heatbreak all the way in the cooler and not, and screwing the nozzle all the way and screwing the nozzle just enough to leave the heatbreak screwed in.
None worked and showed similar problem. The filament extrudes a little, then "melts" on the heatbreak just before the nozzle.

melody2156 (author)setsunakaede2016-10-17

i just finished building my ewaste 3d printer thanks for your information about materials list it's very helpful. i got some problem about feed rate. when it starts printing every thing works fine then the nozzle stops to feed plastic. i tried to increase temp to 210 C but no luck. Do you have any suggestion?

setsunakaede (author)melody21562016-10-18

Congrats on finishing the printer!
Your feed rate issue could have a ton of different sources, but I'd start by looking at your extruder. Is it skipping (really audible clicks and you see the gear "jump" back) or grinding over the filament? Does it really extrude 10mm when you tell it to? (severe overextrusion can cause hopeless underextrusion issues when the extruder loses its grip on the filament)
What happens if you try and assist the filament by hand?
You can resolve a lot of these issues by either increasing the current for the extruder stepper (but mind if it gets too hot), toying around with the steps_per_mm setting for the extruder, the sharpness of the extruder gear (mine was a discarded printer stepper with a pressed-on gear, of which I had to file down the teeth to get them sharp enough) and the tension of the spring that pushes the idler wheel against the filament (increasing grip but also drag).

If this all doesn't work, take apart your hotend and check the alignment. Mine was so badly fabricated that I had to drill it out all the way to the end and I pushed my bowden tube through - that fixed stuff, sort of.

Good luck on the troubleshooting!

melody2156 made it! (author)setsunakaede2016-10-18

Woohoo! thank you setsunakaede the source of problem is steps_per_mm setting of the extruder. I tried to feed manually from Repetier 1mm but my extruder feeded 1 cm instead so the plastic came out too much and it didn't melt fast enough. i calibrated it again and reuploaded marlin firmware now it works like a charm!

you really made my day ;)

setsunakaede (author)melody21562016-10-19

Nice! Congrats, and that was quickly resolved!

BTW, I like the look of your printer, with the DVD housings as structure. Well done!

melody2156 (author)setsunakaede2016-10-19

Thank you, i appreciate your help very much. i'm trying to improve my printer with a new bed and need some cooling system for stepper motors because they get too hot quickly after start printing for a few second.

Hello setsunakaede. I liked what you did with your printer. I just have a question: ¿What did you use as extruder? I see a little motor in the back of your printer, and I also realized that you didn´t used any Nema Motor for the extruder, am I wrong? Or how did you do it? Thanks

About This Instructable



Bio: Twitter: @mikel_llc
More by mikelllc:EWaste 60$ 3DPrinter
Add instructable to: