DIY Delta 3D Printer Using Low Cost Recycled Parts




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

About: Teacher that enjoys working with students

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

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

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

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

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

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

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

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

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.

Green Design Contest

Runner Up in the
Green Design Contest



    • Tiny Home Contest

      Tiny Home Contest
    • Fix It! Contest

      Fix It! Contest
    • Water Contest

      Water Contest

    58 Discussions

    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

    1 reply

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

    1 reply

    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.

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

    1 reply

    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.

    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

    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?

    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

    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?

    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.

    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?


    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?

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