The delta robot looks like three arms hanging from a ceiling, meeting at a small platform. It’s not a conventional serial arm — it’s a parallel manipulator, and that distinction makes it the fastest robot configuration available at the hobby scale. Here’s the geometry, the maths, and the best ways to build one.

Why parallel beats serial for speed

In a serial arm, motor 1 carries motors 2, 3, 4 and all their links on top of it. Every joint motor must accelerate the mass of every downstream joint. That adds up fast — which is why big 6-DOF arms move slowly compared to their power.

A delta robot inverts this: all three motors stay fixed on the base. The moving platform weighs almost nothing (just the end effector and three forearm links). When all three motors share the platform load equally, the inertia the control system must overcome is minimal. Industrial delta robots routinely do 300+ picks per minute.

The workspace is the trade-off: a delta can reach a cylindrical volume beneath its base — good radius, limited height, no ability to tilt the tool beyond a few degrees without a separate wrist axis.

The geometry

A symmetric delta has three identical upper arms of length L1, each driven by a motor at 120° spacing on the base. Three parallel forearm links of length L2 connect each upper arm to the platform. The platform can only translate (X, Y, Z) — it cannot rotate.

      [Motor A]  [Motor B]  [Motor C]
          |          |          |
       [Arm A]    [Arm B]    [Arm C]     ← upper arms (L1)
          \          |          /
      [Rod]  [Rod][Rod]  [Rod][Rod]  [Rod]   ← forearms (L2, parallel pairs)
                   [PLATFORM]

The three constraint equations force the platform to stay level — no motor combination can tilt it, only translate it.

Inverse kinematics (closed form)

For a target platform position (px, py, pz), the required angle θ for each motor can be found by projecting the 3D problem onto the plane containing that arm:

import math

# Delta geometry constants (mm)
R_BASE   = 150   # base triangle circumradius
R_EE     = 50    # end-effector triangle circumradius
L1       = 120   # upper arm length
L2       = 250   # forearm length

def ik_one_arm(px, py, pz, angle_offset):
    """Solve one arm. angle_offset = 0, 120, 240 degrees."""
    a = math.radians(angle_offset)
    # Transform target into arm's plane
    x = px * math.cos(a) + py * math.sin(a)
    y = -px * math.sin(a) + py * math.cos(a)
    # Offset for base and end-effector triangle size
    y -= (R_BASE - R_EE)
    # Distance in arm plane
    d2 = x*x + y*y + pz*pz
    c = (d2 - L1*L1 - L2*L2) / (2 * L1 * L2)
    if abs(c) > 1:
        raise ValueError("Target out of reach")
    theta2 = math.acos(c)
    theta1 = math.atan2(pz, y) - math.atan2(
        L2 * math.sin(theta2), L1 + L2 * math.cos(theta2)
    )
    return math.degrees(theta1)

# Target: 20 mm right, 0 mm front, -200 mm down
for i, offset in enumerate([0, 120, 240]):
    angle = ik_one_arm(20, 0, -200, offset)
    print(f"Motor {i}: {angle:.1f}°")

Be aware of what firmware does and doesn’t cover. Marlin’s and Klipper’s standard delta kinematics are for linear deltas — the 3D printers whose carriages slide up towers. The rotary delta in this guide swings its arms instead; Klipper’s rotary_delta mode supports that geometry but is marked experimental, and GRBL-Mega is Cartesian only. For most rotary builds, running the function above yourself is the dependable route.

Motors: steppers are standard

All three motors see identical loads, so you use three identical NEMA 17 stepper motors. Stepper advantages for a delta:

  • No encoder needed for position — open-loop works because the geometry is rigid and load is symmetric.
  • High holding torque at rest keeps the platform from drifting.
  • Identical units simplify the BOM and firmware configuration.

Drive them with A4988 or TMC2208/2209 drivers on an Arduino Mega or a dedicated delta controller board (RAMPS 1.4 is the classic choice).

DIY delta build paths

Path A — 3D printer conversion. A Kossel or Rostock-style 3D printer is a linear delta robot. The frame, motors, control board and firmware come as complete kits, and the delta kinematics are already in the firmware. Swap the print head for a gripper or tool mount and you have a working delta, just with sliding carriages rather than swinging arms.

Path B — Print the links, buy the motion parts. Several delta robot designs on Printables/Thingiverse provide STL files for the upper arm mounts, ball-joint holders and platform. Buy the carbon-fibre rods (or print them), NEMA 17 steppers and a RAMPS board. The STL files guide covers how to evaluate print quality for structural parts.

Path C — Acrylic/aluminium kit. A handful of pre-designed delta kits exist for the educational market — usually laser-cut acrylic with budget steppers. Lower ceiling but faster to running.

Firmware recommendations

Use caseFirmware / approachWhy
Linear delta (printer conversion)Marlin or KlipperLinear delta kinematics built in, huge community
Rotary delta armYour own IK + stepper controlDependable; Klipper rotary_delta exists but is experimental
Full ROS controlMoveIt + custom URDFMotion planning, but complex setup

For a Python-driven rotary delta, run the IK function above on your computer, convert each motor angle to steps, and send the three step targets over serial to the controller driving the steppers.

Delta vs SCARA vs 6-DOF

DeltaSCARA6-DOF
SpeedFastestFastSlower
WorkspaceCylinder (below base)Ring (horizontal)Hemisphere
Tool orientationFixed (level)Fixed (vertical)Full 6-axis
Kinematics complexityMediumLowHigh
Best forPick-and-place, sortingAssembly, PCB workGeneral manipulation

Frequently asked questions

What is a delta robot arm?

A delta robot is a parallel manipulator: three identical arms connect a fixed base to a moving platform, and all three motors mount on the stationary base. Moving all three motors together moves the platform in X, Y and Z. Because the motors don't move, the moving mass is tiny — delta robots are the fastest configuration for pick-and-place tasks.

How is a delta robot different from a regular serial arm?

A serial arm (like a 6-DOF servo arm) chains links end-to-end so each motor carries all the links beyond it. A delta arm is parallel — three independent linkages share the load. The payoff is speed: less moving mass means less inertia to accelerate. The trade-off is a smaller, roughly cylindrical workspace and more complex kinematics.

What are delta robots used for?

Delta robots dominate high-speed pick-and-place in food, pharmaceutical and electronics manufacturing — picking objects from a conveyor at several hundred picks per minute. In the DIY world they appear as 3D printer mechanisms (Kossel, Rostock), pen plotters, and small CNC sorting machines.

Is delta robot kinematics hard to implement?

Harder than a SCARA, simpler than a 6-DOF serial arm. Forward kinematics (joint angles → platform position) requires solving a system of sphere intersection equations. Inverse kinematics (target position → joint angles) is more useful and has a closed-form solution for a symmetric delta. Delta 3D-printer firmware handles linear (tower) deltas, but for a rotary delta arm you will usually run the closed-form IK in your own code — it is only a few lines.