Introduction: Poor Man's 3D Printer

Picture of Poor Man's 3D Printer

My goal was to build a cheap and inexpensive 3D Printer for less than 100 Dollar/Euro

What are the features of the Poor Man's 3D Printer ?

- Fused deposition modeling ABS/PLA

- Heat bed

- use of open source firmware, modified version of Tonokip

- free host software, Repetier-Host

- bowden-extruder

- max. build size 40mm x 40mm x 40mm

- resolution 0.08mm

Step 1: Parts

Picture of Parts

Parts i bought:

- Arduino Board Mega 2560 (on ebay from china): 10 Euro

- 2 pcs. Stackable Motor Driver Shield L293D 6 Euro

- Hotend MK7 MK8 noozle 0,4mm+thermistor+cartridge 20 Euro

- PTFE Tube 4 x 2mm & 2 pcs. 1/8" BSP 6 Euro

- Fan 30mm x 30mm 2 Euro

- MOSFETs,resistors,caps,LEDs,thermistor 5 Euro

Recyled PC/printer part:

- 4 pcs. DVD/Blu-ray drives, with stepper motors ! old cd drives can't be used because they work with dc-motors

- old PC power supply, 12V/5A and 5V/2A are required

- stepper motor nema17-like from old printer for extruder

- i use a modified gear (see pictures) from an old hp printer for the bowden-extruder, optional you could get an airtripper extruder for about 25 Euro

Things that every hobbyist has in his garage :-)

- many screws, nuts and washers M3,M4,M5

- lots of wires

- aluminium-sheet for the frame, you can also use wood

- some alu/metal profiles, see pictures

Step 2: Pictures From Building the Chassis

Picture of Pictures From Building the Chassis

Step 3: Endstops

Picture of Endstops

use endstops from dvd drive !

Step 4: Counterweights

Picture of Counterweights

I had to made counterweights for the z-axis because the x- dvd drive + Hotend are too heavy for the small steppers

The counterweight is simply connected through a cord and a pulley with the drive.

The weight of one counterweight = weight of (x drive + hotend) /2

Step 5: Extruder

Picture of Extruder

The Extruder was build of a gear of an old hp printer deskjet 300. I remove the original stepper (too weak) and

replace it with a bigger one, i find two of them in an epson stylus color 600.

The shaft was shorten and milled grooves with a dremel, then a metal gearwheel was placed near the shaft.

The gearwheel has one groove too.

Step 6: Hotend

Picture of Hotend

The Hotend is a MK7/MK8 i found on ebay.

i cut some aluminium plates for a better cooling and place a small fan beside

the bigger alu plate above separates the hotend from the BSP fitting via two small screws

Step 7: Heat Bed

Picture of Heat Bed

the bed is heated by two parallel resistors 22R/7W/axial and reaches 110°C

Step 8: Schematic

Picture of Schematic

I uploaded a hand drawn schematic, feel free to comment/ask questions.

In the picture you can see how to modify the second shield, cut the connector pins D12 and D7,

bridge D12 with D13 and D2 with D7, now the mega can talk with the shields separatly

Step 9: Firmware/Software

I use Tonokip in a modified version and added Adafruit Motor shield library also modified to use 2 shields.

The Software i use is Repetier Host

See for Repetier-Host and slic3r settings

Step 10: Results

Picture of Results

here you can see the first results before/after calibration and some final changes in the firmware, the cube was printed with 1.75mm ABS filament, the edge length in the gcode is 10mm the final result 10.06mm !!!

Step 11: First Update

I change the driver board to ramps 1.4 with A4988 Stepper driver because they have become very cheap on ebay.

( board + 4 stepper drivers about 20$ incl. shipping)

I have supplied the x/y/z steppers with 8 Volt, 12 Volt is to much for those tiny things, with only 5 Volt the drivers won't work. i also limit the current to 300mA (with the poti at drivers)

Here are my results with using Marlin as Firmware.

I uploaded my configuration file from Marlin and also the slicr settings.

Step 12: Photos From Printing

Picture of Photos From Printing

Step 13: Update 2

Picture of Update 2

Because of the great demand, I have uploaded a drawing from the ground frame.


Dinesh crazy (author)2016-08-08

I will connect dvd stepper motor and i connect 3d printer software and start run motor did not run but vibrate at 11v
5v stepper does not run

Gelstronic (author)Dinesh crazy2016-08-08

12V is too much, i use 8V

Dinesh crazy (author)Gelstronic2016-08-09

But also did not run i will get vibrate pluse .but l use l298
What is pin mode for motor

EricK13 (author)Dinesh crazy2017-01-13

wired wrong...

Nova13 (author)EricK132017-02-22

can you send me a right wire map pls :))))) <3

8v 1a

Kindly send circuit diagram

Gabriel EmanuelC (author)2016-12-31

Hi buddy , I gt a problem with my 3 CD ROM steppers because I don`t have any data of those.I think to drive them by A4988 Pololu drivers and is necessay to know the correct current value to be able to calibrate the current by these drivers.How do I find out this current value?.

ggraikousis (author)2016-12-20

The current version of marlin does not recognize your
configuration.h file. can you upload your version of marlin or the conf
for current version ????


Dinesh crazy (author)2016-07-25

Hi sir i want pin assignment coding for arduino due model pls you want help me thos was finally year project in my college...

Gelstronic (author)Dinesh crazy2016-07-25

The arduino due uses a totally other processor, (ARM 32bit instead of an AtMega 8 bit). I don't now how/if this will working.

asamad90 (author)2016-06-26

Hi Gelstronic,

Awesome work Gelstronic,would you please let me know the connections diagram for the Arduino Uno and L298P Motor R3 sheild?,and if possible, Is there any change in the programming or library sides?

Gelstronic (author)asamad902016-06-27

Hi asamad,

look at the pdf in "Step 8: Schematic".
You'll find all the wirings/connection there.

weese75 (author)2016-05-16

this is a great write up, my only question is on the heat bed and where to find the resistors and how to wire them in parallel. if you could clear that up that would be awesome.

Gelstronic (author)weese752016-05-17

like i discribe in step 7:

the bed is heated by two parallel resistors 22R/7W/axial and reaches 110°C

Resistors have: 22 Ohm / 7 Watt

look here

JuneC2 (author)2015-05-19

let me just ask one thing, can i use "RepRap J-head MKIV/MKV hotend" instead of that mk7/mk8 hotend?? as i live far away from germany, i need another one.

Gelstronic (author)JuneC22015-05-20

of course, you can use any hotend

JeffrylleP (author)Gelstronic2016-03-19

Can you make me more detailed schematic please...

JuneC2 (author)Gelstronic2015-06-08

can you explain the difference, please? i'm very new to these things. now i'm making the extruder, and it's not so easy..

JuneC2 (author)JuneC22015-05-19

also what's the difference between mkv and mk7?

Gelstronic (author)JuneC22015-05-20

mkv version 5 ("V")
mk7 version 7

JeffrylleP (author)2016-03-18

Hey gelstronic,can you give me more detailed schematic...because im so confused about the schematic that you posted..

AKIREEV (author)2015-12-27

Guys, how did you solve the problem of non-matching motors?
All that I can to find differ from each other.

Their screws have different threading, so their travel distance doesn't match and since Z axis uses two motors this is a problem.

Please advice.

LazyH (author)AKIREEV2016-01-27

You'll just have to adjust steps per inch or steps per cm in the software, any good CNC software should allow this. I use grbl with mine and you can program it directly to the board through a serial terminal like in the arduino ide.

AKIREEV (author)LazyH2016-01-31

Ramps 1.4 (that's what I've got and what I intend to use) has Z-steppers connected in parallel (see here - - Z-MOT and Z-MOT1), which means there's no way they can be controlled separately.

You can't change steps per mm on one without changing it on the other.

Anyway, I went with a different design already, I'm making a counterweight for my single Z motor at the moment.

JaunS (author)2015-06-20

Hello, I have built all the hardware: physical structure, and have completed in entering the GRBLtoArduino and all the software. I have used the Universal GCodeSender and has successfully interpreted the software for is says " Grbl 0.8c ['$' for help] ". I've soldered the stepper motors (for I'm using steppers from dvd roms) to some salvages wire from a printer I took apart. I installed some female sockets in order to connect to the male pins on the CNC Shield ver. 2.01 . The orange light from the arduino flashes and in the Universal GCodeSender ver. 0.8 completes the operation b/c is says " ok " . I have no idea whats wrong. I know the steppers work b/c ive used a 9v battery to pulse the motors and they do indeed pulse. Ive used a multimeter to check its resistance and it works. I've checked the current on the motors once connected to the cnc shield and there's current. I have tested if the drivers are in fact getting power and they are. I've attempted the code " x=100 " , " $7=225 " but no motor movement. Can ANYONE help me ?

LazyH (author)JaunS2016-01-27

is there any pulsing or vibrating from the motors? does a multimeter to the wires going to the motor (in ac mode) register any voltage? a picture might help a bit too.

ggraikousis (author)2015-07-09

you write : I have supplied the x/y/z steppers with 8 Volt, 12 Volt is to much for those tiny things, with only 5 Volt the drivers won't work. i also limit the current to 300mA (with the poti at drivers)

How you do that :i also limit the current to 300mA (with the poti at drivers)

please be more specific.

Can you upload photos from rapm1.4 and how to connect voltage ???

AKIREEV (author)ggraikousis2015-12-27

Perhaps it's too late, but maybe I can still help you: you need to find instructions on how to adjust / limit motor current for the drivers you have (e.g. drv8825 or a4988).

I have DRV8825 boards, and the way to adjust current with those is by turning the potentiometer found at each board with a screwdriver, while monitoring Vref (reference voltage). You connect your voltmeter to the proper pins on your board (the pins should be indicated in the instructions I've mentioned) and check the voltage while adjusting the potentiometer.

There's a formula for each type of board that tells you how Vref translates into current limit. For my boards it's I = Vref * 2, so to achieve 300 milliamps I would need to set Vref to 150 millivolts.

Brijesh Sondarva (author)2015-04-04

I checked with as given photo but repitier host cant drive any of my stepper motor.

i connect all things as in given photo, only extruder and hotbed not connected and end stop too.

TomM9 (author)Brijesh Sondarva2015-12-19

I have the exact same problem! What did you do to get it work?

TomM9 (author)TomM92015-12-23

I fixed it by changing the Baud rate from 230400 to 250000 in the code and Repetier-Host. Bkubicek tested this and says it works better on 250000. Arduino forum

Yonatan24 (author)2015-12-12

Hi, I've added your project to the "Top DIY 3D Printers for Your Budget" Collection

This is the link If you are interested:

AKIREEV (author)2015-12-03

I wonder if it is possible to mount Y axis on top of X axis (or vice versa) and hotbed on top of that (pun unintentional). That would take some weight off Z axis. Maybe it would be possible to use just one CD/DVD drive for Z instead of two? (keeping the counterweight)

premenko21 (author)2015-11-29

could you use an arduino uno instead of a mega?

andytangtsk (author)2015-08-12

Nice build, but that robot doesnt look very detailed, can you upload a photo of a print that was actually printed in 80 microns layer height?

ggraikousis (author)2015-07-09

You said:

I have supplied the x/y/z steppers with 8 Volt, 12 Volt is to much for those tiny things, with only 5 Volt the drivers won't work. i also limit the current to 300mA (with the poti at drivers)

Please by more specific.. How do this:(with the poti at drivers)

Hvents4 (author)2015-07-05

Wow, this is impressive! I really appreciate how you did step by step and were so helpful.

I was just wondering where this printer stands compared to a commercial grade 3D printer, like this one ?

I am curious as to what the specific functions are and the drawbacks of creating my own printer compared to buying one. Thanks for a great instructable!

Kikus31 made it! (author)2015-06-27

Hi, Great instructable, i trying to make one like you. It's not finish...

Chers amis francophone, si vous voulez aussi participer à la conception d'une micro imprimante, venez me rejoindre sur :

hcsaki (author)2015-01-06

Why is there a need for 4 dvd/blu-ray drives with stepper motors. Isn't 3 motors enough for the 3 axes?

Xixfas (author)hcsaki2015-06-23

You need 2 for the z axis.

VictorH4 (author)2015-03-06

what is the model of nema17?

Xixfas (author)VictorH42015-06-23

nema 17 is the model

dintid (author)2015-03-20

Anyway to tell if a drive's motor is stepper motor or DC motor? I just salvaged some old CD drives and some old DVD drives.. and some of the motors are identical across the devices!

draconis537 (author)dintid2015-05-29

Hopefully you've found the answer to your question by now but just in case: the easiest way to tell the difference is that stepper motors have 4 wire leads and tend to be more boxy looking, while DC have 2 and are more cylindrical. Hope that helped :)

dintid (author)draconis5372015-05-29

Thanks. Yes I did. Also made a similar Instructable based on Ramps where I go Down to the very basics for novices.

draconis537 (author)dintid2015-05-29

I'll be sure to check it out :)

dintid (author)draconis5372015-05-29

The various DVD/CD DC motors looked rather similar to the Stepper motor versions. Some DCs were boxy though, but not all.

Paulo13210 (author)2015-05-22


how did you calibrate the printer? i've got troubles with X ans Y motor, RepRap_printDoctor said that it could be L293 High temp so I cool it with fans then it could be current calibration of the pololu but i've got L293D. Is there a way to put a resistor somewhere to reduce current?


profort (author)2015-05-04

please tell me more I would like to build one but have very little financial resources.

About This Instructable




More by Gelstronic:Poor Man's Hue SwitchPropHelix - 3D POV DisplayPOV Globe 24bit True Color and Simple HW
Add instructable to: