Introduction: DIY Delta 3D Printer Using Low Cost Recycled Parts

Picture of DIY Delta 3D Printer Using Low Cost Recycled Parts

This is a filament deposition delta 3D printer, was designed and built in 2013 using recycled parts from old dot matrix printers and flatbed scanner. FDM (Fused Deposition Modeling) is a layer additive manufacturing (or 3D Printing) process that uses production-grade thermoplastic materials to produce both prototype and end-use parts using a number of thermoplastic FDM materials that can be used for direct digital manufacturing including ABS, PC-ISO polycarbonate and Ultem-9085 for high-temperature applications. A delta robot mechanism was used to move the extruder. It is a type of parallel robot that consists of six parallel arms connected to three parallel sliders at the base. The key design feature is the use of parallelograms in the arms, which maintains the orientation of the end effector which restrict the movement of the end platform to pure translation, i.e. only movement in the X, Y or Z direction.(photos are taken by

3D printing octopus

Design goals:

## Build volume: 200x200x200 mm
## Footprint: 600x650 mm
## Print surface: 200x200 mm heated glass which never moves.
## Mass of end effector with hotend: less than 600 grams.
## Positioning speed: up to 80 mm/s in all 3 directions.
## Positioning accuracy: at least 10 steps/mm in all 3 directions.
## Simplicity and use of recycled parts
## Hardware cost: less than $400 USD.

Step 1: General Idea

Picture of General Idea

World is in a revolution in manufacturing methods by 3D printers. In the past years personal computers and printers helped us to spread knowledge and information communication among individuals and institutes so that everyone can write and publish own contents. Same phenomena is happening in production and manufacturing so that we can create and make our personal items. 3D printers have less restrictions and it is easy to create and make shapes. We are able to write our texts in desktop publishing software and print them by printers for many years and now we can design our necessary items and 3D print them. People will learn how to use 3D design software and many will own their 3D printer in homes. Freedom of Design is achievable with Additive Manufacturing technologies such as FDM. Complex features, undercuts, details, and internal features are not a problem when using FDM to create prototypes and production parts. No need to design for manufacture, manufacture for design. For a good reference on design guidelines go to:

And for material selection go to:

Computers and printers are under development and they become old and scrap very soon, so you can see many new and usable computers and related systems like printers and scanners were taken out of service every year which is a waste of resources. In our design we decided to use usable and utilizable recycled parts of printers and scanners. These parts are very cheap, heavy duty, and reliable also using those helps to reserve our resources. They are made by high quality materials and work nice. But the problem is that those parts are designed for special purposes and not generally so we should base our design considering their specifications. In usual product design a designer first define needs and specify performance and then choose and purchase necessary parts, here we should find obtainable recycled parts then identify specification. Since we don’t have many options it is better to use similar parts for the design. This is why we chose delta mechanism because it utilizes three similar sliders used for head motion in dot matrix printers. Fused deposition modeling 3D printers generally use a Cartesian mechanism that X, Y, and Z are moved individually. Motion mechanisms are different for each axis and designs are not similar. But in delta mechanism we have three similar sliders installed 120 degree to each other. Motion mechanism and support of an Epson flatbed scanner was also used for extruder assembly and support of hot end. Figure shows structure and main parts of our 3D printer which is generally similar to commercial delta 3D printers. In the following we will describe each individual section.

Step 2: ​Main Wooden Body

Picture of ​Main Wooden Body

Main body was made using brown 16 mm MDF wood and consists of five parts. Figure shows drawing of those parts cut from MDF sheet by a CNC wood carving machine. Later they erected and fixed together by wood screws as shown in Figure. Three adjustable cabinet legs were attached under the body to make it level. During high speed operation there are some vibrations in structure that can be eliminated by braces. There is a beam on top of the body to support filament spool.

Step 3: ​Sliders

Picture of ​Sliders

Three sliders that were used in this 3D printer were parts of three Epson LQ 2170 dot matrix printers that was bought from scrapyard for less than 20 US$. Tractor assembly was separated and unnecessary parts were cut out. Printer heads were taken out and a CNC cut 2 mm steel plate for attaching ball ends were screwed to tractor as Fig. 5 and 6. Each slider has a step motor (Table 1) that moves carriage by a timing belt for about 430 mm. At the end of sliding course there is a home position sensor that senses the tractor motion end. Each step moves the carriage for 106 microns and in case of using micro stepping drivers we can reduce this length. Dimensional specifications of our 3D printer were specified based on slider motion.

Each slider has a step motor (Table 1) that moves carriage by a timing belt for about 430 mm. At the end of sliding course there is a home position sensor that senses the tractor motion end. Each step moves the carriage for 106 microns and in case of using micro stepping drivers we can reduce this length. You can see sliders in motion next step.

Step 4:  Extruder and Hot End

Picture of  Extruder and Hot End

For extruder we used same step motor with its timing belt pulley and pulley tightening mechanism that use a spring to maintain force to squeeze filament between toothed pulley and ball bearing. A U shaped profile was used to support step motor, ball bearings and hot end which was a part of an Epson flatbed scanner. Support plate is a CNC cut circular steel plate that has six holes for ball end supports with 120 degrees to each other. Hot end was purchased from Felix printer with nozzle diameter of .3 mm. It has 12V element and NTC to regulate temperature on 250 degrees by a thermostat.

Support plate and sliders mechanism

Step 5: Parallel Arms

Picture of Parallel Arms

Parallel arms

Six parallel 340 mm arms with three millimeter ball ends were used to hold the extruder. Attachment parts are six CNC machined steel mounting block that is used for model helicopters, they can maintain same distance between ball ends and arm remains parallel in any condition. Each of them is screwed to extruder support and sliders.

Step 6: ​Heated Bed

Picture of ​Heated Bed

Upper glass part of an Epson flatbed scanner was used as heated bed because of its durability and smoothness. A 220V 300 Watt flat element was attached under the glass to heat the glass to 120 degrees which is controlled by a thermostat. There are three adjustment nuts and screws for leveling the glass (Fig. 8).

Step 7: ​Electronics

Picture of ​Electronics

Four different stepper motor driver board were used to drive sliders and extruder stepper motors. Drivers for sliders are common 12V drivers but the one for extruder uses micro stepping to maintain proper extrusion. An Arduino Leonardo board was used as controller our 3D printer. Three analog inputs were used to sense signals of home position sensors and also eight digital outputs that send pulses to four stepper motors. Temperature of hot end and heater are controlled separately by individual controllers.

Step 8: Software

Picture of Software

Software was developed in two parts, one inside Arduino board and other part inside PC under windows. Arduino code also has two parts, initialize and loop. Initialize move all three sliders to their home position and then move the hot end to zero set point. In loop section Arduino board waits for commands from serial port and executes them that is sending pulses to stepper motor drivers to move sliders and extruder in positive or negative direction.

Pc part of our code consists of several sections, Gcode interpretation, delta mechanism inverse kinematics and command calculations. After preparing Gcode of each printing part by Repetier we should interpret them and extracting coordinates of hot end and extruder motion. We should set many parameters like layer thickness and fill ratio inside Repetier to match to our 3D printer specifications. After extraction of coordinates we use a function that calculates position of each slider based on required XYZ of hot end. It uses delta mechanism inverse kinematics relation based on parameters like parallel arm length and mounting position of sliders. Last part of our code calculates commands necessary to move sliders and extruder based on coordinates of hot end. Command is one byte that shows necessary pulses in positive and negative direction as shown in Figure. Source code of Arduino board is also here "zpulsecwextr2.ino".

The function that calculates slider movements from XYZ of hotend is "xyztoslideZ123.m". It is written in OCTAVE and you can run it in Octave or Matlab environment. XE is the position of attachment points on end effector and XS is the attachment points position on sliders.


Han_Solo_Order66 (author)2015-01-15

im sorry if im being dense here but this schem. seems to be pretty vauge. can you elaborate. on were each scaveenged part is what it is and were to get non scavenged parts

hesamh (author)Han_Solo_Order662015-04-13

You can use any linear slider that moves 400 mm.

spudziuvelis (author)2015-04-13

Could you tell where you bought the ball ends? Or show some alternatives

hesamh (author)spudziuvelis2015-04-13

They are standard 3 mm female ball ends PHSA3 that you can find in ball bearing shops. You can use RC helicopter model 3mm ball ends as well.

ShanaNicoleAlmond (author)2015-04-10

Do you think a solidoodle 3d printer could be modified to print with ULTEM. If so what printing parameters would you suggest.

hesamh (author)ShanaNicoleAlmond2015-04-11

for ULTEM 9085 nozzle temperature is 330 deg. C(not sure), you should check to see if it is possible to set this temp on a solidoodle 3d printer.

fusiondew. (author)2015-01-16

anyone have a general parts list for this model?

акостин (author)2014-05-09

Good design:) I try to repeat it in the arduino uno. Please tell me how to configure Repetier.

hesamh (author)акостин2014-05-09

Sure I will tell you. It depends on your extruder nozzle diameter and feed rate. Tell me the specs of your design and I will tell you. Also I tried using Arduino mega 2560 but serial connection was too slow and although i tried hard but couldn't solve it so I changed to Leonardo again. I suggest you use Rostock reprap firmware and electronic, it is a delta robot 3D printer prototype

акостин (author)hesamh2014-05-09

Thanks:) I use the extruder nozzle diameter 0.4 mm and a speed of 2 mm/sec. Rod with a diameter of 1.75 mm Rostock reprap uses a modified Marlin firmware, as it is too large for Arduino UNO. Maybe there is another version of the firmware?

hesamh (author)акостин2014-05-09

I wrote a code that interprets Gcode made by Repetier and then send simple command to Arduino board and used two separate temperature controller, these made the firmware very simple.

For a .4 mm nozzle "layer height" should be .354 mm and extrusion multiplier is 19.4. there are other settings that depends on you use SFACT or Slic3r

акостин (author)hesamh2014-05-09

Thank you. I also like the idea of using two external temperature regulator. I can see your code that interprets Gcode, and firmware Arduino? And what firmware do I choose in the settings Slic3r?

hesamh (author)акостин2014-05-09

You can download my arduino code in step 8 and about firmware in Slic3r I use Merlin. Sfact works better and is more flexible for me but had some problem in hollow models that had selfintersecting faces, so I used Slic3r for hollow models.

акостин (author)hesamh2014-05-09

I flashed Arduino your firmware and connected to Repetier, but the seal is still not talking. Engine is one of the axes, when connecting Arduino to the computer raises up and stops. No more action! Please tell me what could be wrong?

hesamh (author)акостин2014-05-10

Tell me how is connection between Arduino and step motors? do you use Reprap RAMPS board?

акостин (author)hesamh2014-05-10

I use EasyDriver V4 connected on your outline to Arduino UNO.

When the firmware Arduino file grbl.hex, the device works fine under program control grbl.

hesamh (author)акостин2014-05-10

Can you detect home position sensor signal?

акостин (author)hesamh2014-05-11

With sensors positions home okay. The printer after switching back home. The problem is that the printer does not perform commands sent Repetier. Arduino do not react to commands sent through the port monitor. Perhaps the problem is in the firmware zspulsecwextr2? In General, what is the format of the commands sent Repetier in Arduino? What version are you using Repetier?

hesamh (author)акостин2014-05-11

Please read step8, I explained the command, you should also set baud rate of serial port to match in arduino and in PC

акостин (author)hesamh2014-05-11

Thanks for the help. I still don't understand. Commands in Arduino sends Repetier or your own software? If I always apply to team 1(00000001),1,1,1 the first slider will move up?

hesamh (author)акостин2014-05-11

Commands to Arduino is sent by my own software

акостин (author)hesamh2014-05-11

You will not share with me the software? I would be very grateful!

hesamh (author)акостин2014-10-22

Hi акостин

, I uploaded the Octave function that calculates three slide motion from XYZ of the hotend in last step. Please check and tell me your opinion.

Did you finish your 3D printer?

hesamh (author)акостин2014-05-20

Any success in your design?

hesamh (author)акостин2014-05-11

it is like GRBL, just in "stepper.cpp" you should change "stepper output bits" so that it writes on a command file that later is send to arduino through serial port, you should compile GRBL in PC

If you can run GRBL on your arduino UNO it is better to change the setting and read Gcode by arduino that comes from Repetier

Only checked. The problem was with connecting drivers motors to the control Board. When sending different numbers through the port monitor, move the sliders! Now please help with a program on the computer to send bytes to Arduino. Which program to use and how to configure?

hesamh (author)акостин2014-05-11

you should write your own code that reads Gcode file and calculates commands based on your configuration, my code doesn't help you. there are some Gcode parser that can be used as a part of your code. Use GRBL and change the command section in "stepper.cpp"

акостин (author)hesamh2014-05-11

Thanks for the help. I'm afraid that I can't write your code. I am not a programmer:( Maybe you will give me your code, at least for the sample. No wonder that I collected machine:)

hesamh (author)акостин2014-05-25

Any improvement? does it work?

hesamh (author)акостин2014-05-11

I suggest you to use Arduino mega 2560 with available firmwares that just needs some settings and no need to program

MichaelF6 (author)2014-09-24

Hi, great design, i'm going to build my own in near future, i think.

But i don't get one thing: How to Calculate the GCode-Data, which has x,y,z Axes, to the Delta-Axes? How do i calculate, how many steps are needed of which Stepper, when GCode says "move that amount of steps on x-axis"?

Your Windows software is responsible for this, right? Do you just have the mathematics for this for us? :)

hesamh (author)MichaelF62014-09-27

Hi Micheal, I uploaded the Octave function that calculates three slide motion from XYZ of the hotend in last step. Please check and tell me your opinion.

thalescb (author)2014-05-13

Hey, could you please break down this for beginners/dummies? It's a bit hard to understand what you've done after step 2, I really want to re-create this..

Also could you please include the parts list? A schematic of what goes were would be great too. Thanks!

thalescb (author)thalescb2014-05-13

Like, when you say in Step#3 that "unnecessary parts were cut out"... What are the unnecessary parts and how do they look like? I'm having a hard time to name the parts and components, and to be able to distinct them of another

hesamh (author)thalescb2014-05-15

whole paper handling mechanism including step motors and rollers should be cut out, like this photo:

hesamh (author)thalescb2014-05-15

Ok, I will add more info and also want to insert another instructable for slider part only, because slider can be used in other robotic and CNC projects

MichaelAtOz (author)2014-05-12

Nice example of re-purposing.

Where did you get the ball-ends and motors, also re-purposed?

hesamh (author)MichaelAtOz2014-05-15

Thanks Micheal, They are standard 3 mm ball ends (PHS female type ball end) were bought from bearing shop each for 2 $ and rods are flybar of ALIGN helicopter model 340 mm lenght

themanwoaname (author)2014-05-13

what is the printing space of this?

hesamh (author)themanwoaname2014-05-15

You can see build volume in Intro 200x200x200 mm

MichaelAtOz (author)2014-05-12

You repeated a bit there (step 3)

sbkenn (author)2014-05-11

I have an old Seiko pick-n-place robot just begging to be adapted for this purpose. It has about 36" x 18" work area so "just" needs a vertical axix, printhead and drive electronics. Yay, and thanks.

hesamh (author)sbkenn2014-05-11

Good luck, you can move heated bed vertically instead of installing on end effector

mickcaulton (author)2014-05-11

Getting inspired to build a 3D printer. i was very interested in the Delta mechanism you used to moving the printer head.

hesamh (author)mickcaulton2014-05-11

Good luck, delta mechanism worked fine for me, it is simple but calibration is harder.

ckyuen (author)2014-05-11

好呀!環保 project

hesamh (author)ckyuen2014-05-11

Yes ckyuen, it is a green project, helping to reserve our resources

danegemc2 (author)2014-05-08


hesamh (author)danegemc22014-05-09

Thanks for support dane

About This Instructable




Bio: Teacher that enjoys working with students
More by hesamh:Showing Charts and Gauges of IOT device data using Arduino web server with JavaScriptLasercut interlock puzzleDIY 3D scanner based on structured light and stereo vision in Python language
Add instructable to: