Go Down

Topic: ArduDelta - delta Robot implementation (Read 36022 times) previous topic - next topic


Jul 03, 2011, 01:30 pm Last Edit: Jul 03, 2011, 03:00 pm by body28 Reason: 1
Hello everyone.
I have just finished my latest project, the biggest I've done so far and now i want to share (brag about).  XD
So... I am talking about my own delta robot. For those who don't know what a delta is, i will briefly explain:
it's a parallel robot (because the lower arms use parallelograms to maintain the lower platform parallel to the
upper platform) very fast, very precise (the concept is, mine is not that good) and a bit complicated
(mathematically speaking) at first site.
I have so many things to say about this project, it took me 7 months to complete (working from time to time).

Components (i have attached a picture with the (almost) final rig).
- 3 black arms for support - made of wood, painted
- an upper platform (the light-brown thing from the top) - made of wood
- 3 standard servos (towerPro 946r) places on their sides (pivot point facing exterior) mounted 120 degrees apart.
- upper arms - made of plexiglas - connected to servo throw a plastic arm with 2 connection points (one on the
 servo pivot point and another 2.5 cm appart)
- in the exterior point of the upper arm i have 2 spacers (2 pieces of carbon-fiber tube) connected to articulated
 joints (2 pieces). One parallelogram (out of 3) is formed with 2 spacers, 4 articulated joints (2 up, 2 down),
 2 carbon-fiber tubes and, in the lower part, where the joints meet the lower platform, there is another "spacer".
 All of this is called lower arm.
- the lower platform - made of plexiglas. It's an equilateral triangle with some other pieces of plexiglas glued, for
 forming a mounting point for the lower arms.
- in the bottom part we have a working area (the light-brown thing from the top), connected to the support arms
 with a diameter of 40cm, made of wood
- the controller: made of plexiglas, it consists of an 20x4 serial lcd, an Arduino Mega2560, and a pcb that contains
 an infrared receiver, 2 rgb leds and a button.

The robot has 2 main states:
- a manual state: this state allows for independent increments of the xyz coordinates.

Delta Robot - Manual mode

- a path following state: this state allows the robot to follow a predefined path.
I have selected just a few paths and a few different modes of operation.

Delta Robot drawing - geometrical primitives

Drawing Fii logo (the logo of my faculty - UAIC Infoiasi )

Drawing Fii logo - top view (the logo of my faculty - UAIC Infoiasi )

Drawing circles - top view

I can talk about this project for days, so if anyone has a question I will more than happy to answer.
Sorry for the long post and the english screw-ups.



can you email the code? or some tutorials? my email is eu_ea33@yahoo.com


Hello. Sorry for the late answer.
And yes, i will help you, you will get an email soon.

p.s. does this project suck or there isn't at least a "good job" for me on this forum?
It is quite disappointing.


Jul 06, 2011, 08:05 pm Last Edit: Jul 06, 2011, 08:25 pm by focalist Reason: 1
That's a pure awesome device... I'm in the process of building something sort of similar, a suspension wall plotter.. two steppers instead of three, but otherwise pretty much the same, in that the head is suspended from a variable length system under stepper control..  http://arduino.cc/forum/index.php/topic,60281.0.html

How are you compensating for the difference in distances radially (in that a movement toward the center is "smaller" than a movement further away)?

I'm currently working on calculation code, which will determine location by using pythagorean theorem and then apply a "correction" to the movement, but it's not quite there yet.  Your device (especially since it used three motors) is MUCH faster than mine, if you operate the steppers at a slower rate do you get increased accuracy?  My largest problem is of course being suspended, it's got a bit of bounce when it moves.

In any case, TREMENDOUS job!  Sweet implementation, it's quite a nice looking device on top of being functional!


Jul 06, 2011, 08:39 pm Last Edit: Jul 06, 2011, 08:41 pm by lusian Reason: 1

Hello. Sorry for the late answer.
And yes, i will help you, you will get an email soon.

p.s. does this project suck or there isn't at least a "good job" for me on this forum?
It is quite disappointing.

okey. thanks

ohh, by the way, this link doesn't work : http://prezi.com/sckgedbtmy55/licenta-robot-de-tip-delta/


Just signed up on the Arduino forums just to comment on this project!  8)
This is an awesome project, I've taken an interest in delta robots in the recent few months after seeing a delta cnc mill and this is a great example of how to get into a delta design with minimal costs. Congrats on the great work, I hope the lack of response on here hasn't put you off sharing your projects.

Do you think you could post a copy of the code? I'd be interested to see how it works and how you've implemented it all. If not, could you PM me with a copy, I'd like to learn more.


A very nice pick&place robot !! Give u big big hands ....... :)

but I believe, if it can pick something a little bit heavier, i.e. 5lb or 2kg, that will make your robot even more meaningful. Now, it is nice, but ..I cant think of a way to use it, so it is nice and no more than a nice piece of hobby project.

add oil..add oil...just 1 more step, it will be a GREAT robot!!


This is a Great project!!!
solving the X Y Z coordinates into a delta system in a small amount of code takes real skills. I for one would like to see your code.
Mechanical problems that reduce repeatability are not unusual and take a great deal of effort (as in rebuilds) to resolve. A little preload to change the stress on your positioning members from compression to tensile might resolve some of your difficulties while keeping everything light weight.
This is a Great job showing a tremendous skill set.
If you decide to share your code  my email is Johnk36333@hotmail.com


Jul 10, 2011, 08:39 pm Last Edit: Jul 10, 2011, 08:48 pm by body28 Reason: 1
Yey... feedback.  :D

So.. one at a time:

@lusian - thanks - this link should be beter.

@Knightrous - Thank you!
Welcome to the forum i guess. :) And yes, i will make the code public, i think
that is the essence of the Arduino. Fell free to ask if something seems weird.

@marcuschan - Thank you!
And yes, future development is planned. :D The pen was mounted just to visually show what it can do.

@tinkermonkey - Thank you!
The code is posted now.

@focalist - Thank you!
Of course i know that project, at first i was simply amazed because i thought that the marker was hanging
in the air with a magnetic field. Congratulations. After i've looked closer (and listen your comments) i've
figured out what's the deal. Very nice, and very precise. And a very nice name too :D
To the chase now:
1. "How are you compensating for the difference in distances radially (in that a movement toward the center is "smaller" than a movement further away)?"
This i don't understand. If you can explain further please, i will be happy to reply.

2. It's so nice that your system is in a plane (like xyz plane, sorry for the english) so you only have x and y to mess with.
That simplifies the process. I was thinking about stretching of the wire, but you said that you use fishing line, so most
probably that isn't a problem.
3. Yes, mine is faster, but with some costs. I can actually decrease the speed, and that makes it more accurate, but..
i have a new problem: servo jitter. And that makes the drawing very not cool. The current speed is a compromise
between speed and accuracy. For the future i have in plan a dedicated servo-controller.
4. Bouncy'ness :P . I was thinking. What about my quick sketch (the second attachment)?
5. Thank you again. I worked very hard on this.

So the code is now public.
I admit that the code is improvable. I have changed my mind several times
during the design, and that is reflected in the code.
Special thanks needed for this code go to: mzavatsky and jarkman especially.


Hi There,

You have done a very good project. Congratulations. I also plan to do a Delta Robot project. Can you send me the codes and also kinematical functions for Arduino.

I thank you in advance,

Best Wishes,



Hello Zozerk and thank you.
The code is attached to my previous post.
The kinematic functions are also embedded in the project.

Just ask if you need more help, and good luck with your project.


Wow - beautiful work. I love the tripod-like legs, and the way they curve under to support the base plate. Simple and elegant.

May I ask - what reasons made you choose servos rather than stepper motors?

I suspect that servos will never let you get quite the accuracy you want; different servos may accelerate and decelerate at subtly different rates, and there's a lot of slack/backlash in the internal gears which doesn't matter when you're just using a servo to get from angle A to angle B, but will make a big difference if you want the combined velocity from all three to be precise and repeatable. Plus the internal gearboxes have quite a bit of 'bounce' in them, which may be hard to engineer around.

Having said that, I dread to think what the code would look like for stepper motors - it's a big leap to go from smoothly ramping three PWM signals over time, to sending out between three and six streams of variably timed pulses where the timing itself is non-trivial to work out and needs to run smoothly.

(I managed to build a crude CNC mill out of bits and pieces, and I naively thought it would simple to get an Arduino to not just act as an interface, but actually be capable of doing simple jobs itself - draw/cut circles, that sort of thing. When I actually started to have a go, I found the code waaaay more complex than I could handle. One axis, accelerating and decelerating from A to B was simple enough, but add another axis into the mix and it gets much more complicated... I gave up and started using TurboCNC. Gave me an enormous amount of respect for the guy who wrote it - there's a lot of funky maths going on in there :)

Cool remote control and display, too. Next step: ethernet shield and a webcam, so we can all have a go at writing our names with it? ;)


I couldnĀ“t find the code anywhere!
can you share it?

thanks! (from Argentina)



Your ball joints are very interesting. Where can I buy these joints? Thanks.


Hi, your project is awesome, I would like to have the code, is it possible?

Congratulations, Ivan

Go Up