Mirco Bochicchio
  • Projects
  • About
  • Experience
Email me

© 2026 Mirco Bochicchio. Built by me, for me: I was the customer again.

Privacy and credits
  • GitHub profile
  • LinkedIn profile

Leap Motion robot arm· Open-source project

Move a robot arm with your hand.

Hold your hand over a Leap Motion sensor and a 3D-printed robot arm follows it. Show three fingers to start.

View codeWatch on YouTube

I had an arm and no good way to drive it.

I printed and assembled a robot arm from a 3D model by Zortrax, and needed a way to control it. The arm, the Arduino and the G-code are standard parts. My part is the bridge from the hand to the arm: reading the hand with a Leap Motion and turning it into movement.

Customer: me. I printed and assembled the arm from a Zortrax 3D model, then wanted to drive it with something better than buttons.

How it works

  1. Track the hand

    I connect to the Leap Motion with leapjs and read the palm position and the extended fingers on every frame.

    3 fingersTracking onPalm position
    Three extended fingers switch tracking on. After that, the palm position is read every frame.
  2. Turn the hand into movement

    Each frame is compared with the last one. The difference becomes a small move on each axis, and anything under a threshold is ignored, so a steady hand does not shake the arm.

    Palm now vs. last frameΔx, Δy, ΔzMove on X, Y, Z
    One move per axis, only when the hand moved more than the threshold.
  3. Send it to the arm

    The moves go out as standard G-code over a serial port to an Arduino running GRBL, which drives the stepper motors through A4988 drivers.

    Computer Arduino + GRBLA4988 drivers Stepper motors
    Standard G-code over serial at 115200 baud.

Build one yourself

The arm moves with A4988 stepper drivers. In this video I show how to set their Vref and wire them, and the mistakes to avoid.

Simple on purpose

A gesture to start

Show three fingers and tracking begins. Until then the arm stays still.

No twitching

A threshold filters out tiny movements, so the arm only follows real ones.

No custom protocol

Plain G-code to GRBL on an Arduino. All the new work is in the hand tracking.

Built from a Zortrax model

A 3D-printed arm with Nema 17 stepper motors, a CNC shield and A4988 drivers. The 3D model is Zortrax's.

Built with

  • JavaScript
  • Node.js
  • leapjs
  • serialport
  • Arduino
  • GRBL

Hardware: Arduino, Nema 17 stepper motors, CNC shield, A4988 drivers and a Leap Motion Controller v1. The 3D model of the arm is the property of Zortrax.

All projectsNext: Murphy