2026

A Robot Arm That Sees You

Like the Reflexes Machine, this project runs on both halves of the Arduino UNO Q at once. The Linux side watches the camera and decides who is standing there; the microcontroller side drives the servos over a serial bus and keeps the movements smooth. The interesting engineering is in between: a four-axis arm printed in pieces, a gripper on its own servo, and pressure sensors in the tray so the arm knows whether it actually picked something up.

Published on Arduino Project HubArduino Project Hub ↗

FilesOpen source project: the files, the code and the assembly guide are published on Arduino Project Hub.

Files and guide on Arduino Project Hubprojecthub.arduino.cc ↗Source code on GitHubgithub.com ↗
4axes, plus the gripper
0buttons to press
2processors, one board
Loading the model…

Components

Every printed part, with its function and print settings.

Base shell

base_side_v2

The drum everything stands on. It hides the UNO Q, the servo driver and the power converter, and carries the first servo, the one that turns the whole arm.

MaterialPETG HF

Base top

base_top

Closes the drum and holds the ball bearing that takes the weight of the arm, so the base servo only has to turn it, not carry it.

MaterialPETG HF

Base bottom cover

base_cover_v2

The plate under the drum. Unscrew it and the whole electronics bay is open.

MaterialPETG HF

Back cover

back_cover_v2

Covers the opening at the back of the base where the power connector and the switch come out.

MaterialPETG HF

Bearing cover

bearing_cover

The ring on top of the base that keeps the bearing in place and hides it.

MaterialPETG HF

Bearing spacers

inner_spacer ×3

Two thin rings, one inside and one outside the bearing, that centre it in the base top.

MaterialPETG HF

Base gear

first_arm_gear

The large gear under the arm: the base servo turns it through the smaller servo gear, and the whole arm turns with it.

MaterialPETG HF

Servo gear

servo_gear

The small gear on the base servo. Together with the base gear it gives the first axis its reduction.

MaterialPETG HF

Base servo support

servo_base_support

Holds the base servo inside the drum at the right distance from the big gear.

MaterialPETG HF

Servo support brace

servo_support_enforcer

A small brace that stops the servo support from flexing when the gears push against each other.

MaterialPETG HF

USB collar

usb_collar

Optional ring around the USB opening of the base, for a tidier cable exit.

MaterialPETG HF

Shoulder joint

first_arm_joint

Sits on the bearing and carries the shoulder servo. It is the piece that turns with the base and lifts the first arm.

MaterialPETG HF

First arm

first_arm

The longest segment. It is printed in one piece and hollow, so the servo cables run inside it.

MaterialPETG HF

First arm cover

first_arm_cover

Closes the cable channel of the first arm.

MaterialPETG HF

Second arm

second_arm

The forearm: it carries the elbow and the wrist servo, and the head at its end.

MaterialPETG HF

Second arm cover

second_arm_cover

Closes the cable channel of the second arm.

MaterialPETG HF

Joint covers

joint_cover ×7

Six identical discs, two per joint, that cover the servo horns and the screws on both sides.

MaterialPETG HF

Head

third_arm

The last segment is also the face: it holds the camera on top, the LED matrix in front and the gripper servo below.

MaterialPETG HF

Head cover

third_arm_cover

The back of the head, around the camera.

MaterialPETG HF

Gripper servo support

third_arm_gear_support

Holds the micro servo that opens and closes the gripper.

MaterialPETG HF

LED matrix frame

modulino_led_matrix_support

The bezel that holds the Modulino LED Matrix in the head and sets how much of it shows.

MaterialPETG HF

Gripper fingers

servo_gripper ×3

Two fingers: one is driven by the micro servo, the other is free and follows it.

MaterialPETG HF

Gripper pads

gripper_pen_threated_pad_dx ×3

The two soft pads screwed to the fingertips. Printed in flexible TPU so a pen is held without slipping and without being crushed.

MaterialTPU 95A

Pen trays

pen_holder ×10

Nine identical wedges that make up the fan in front of the base. Each one has a slot for a pen and a pressure sensor underneath, so the arm knows which pens are there.

MaterialPETG HF

Tray connector

holders_base_connector

Joins the fan of trays to the base so they stay aligned with the arm.

MaterialPETG HF

Tray joint

pen_holder_joint

A small clip that locks two neighbouring trays together.

MaterialPETG HF

Arduino UNO Q

arduino_uno_q

The only board in the project. Its Linux side runs the camera and the face recognition; its microcontroller side drives the servos over a serial bus and reads the pressure sensors.

ModelArduino UNO Q, 4 GB
Product pagestore.arduino.cc

Servo driver board

servo_driver

Turns the UNO Q serial port into the half-duplex bus the four STS3215 servos share, and feeds them 12 V.

ModelWaveshare Serial Bus Servo Driver Board
Product pageamazon.it

DC-DC converter

dc_converter

Steps the 12 V of the power supply down to the 5 V that feed the UNO Q.

ModelDC-DC 12 V → 5 V, 3 A
Product pageamazon.it

Base servo

servo_base

The first of four serial bus servos. It turns the whole arm through the pair of gears in the base.

ModelFeetech STS3215, ID 1
Product pageit.aliexpress.com

Shoulder servo

servo_shoulder

Lifts the first arm. It carries the most load of the four, which is why the arm is kept light and hollow.

ModelFeetech STS3215, ID 2
Product pageit.aliexpress.com

Elbow servo

servo_elbow

Moves the second arm.

ModelFeetech STS3215, ID 3
Product pageit.aliexpress.com

Wrist servo

servo_wrist

Tilts the head, so the camera and the gripper point where they need to.

ModelFeetech STS3215, ID 4
Product pageit.aliexpress.com

Gripper servo

micro_servo

A small metal-gear PWM servo, driven directly from a pin of the UNO Q, that opens and closes the fingers.

ModelMG90 micro servo, metal gear, 90°
Product pageamazon.it

Ball bearing

bearing

Takes the weight of the arm so the base servo only turns it.

ModelBall bearing 65 × 50 × 7 mm
Product pageit.aliexpress.com

Camera

camera

The USB camera on top of the head. Its stream goes to the Linux side of the UNO Q, where the face recognition runs.

ModelUSB-C camera, on a powered USB-C hub
Product pageamazon.it

LED matrix

modulino_led_matrix

The face. A 12 × 8 LED matrix on the Modulino connector, which shows the eyes and reacts to who is in front of it.

ModelArduino Modulino LED Matrix
Product pagestore.arduino.cc

Electronics

Four servos on one wire.

The four joints are serial bus servos: they share a single half-duplex line and each answers to its own ID, so the wiring through the arm is one cable instead of four. A driver board sits between them and the Arduino; the gripper is a plain PWM servo on its own pin. Two pressure sensors in the trays tell the software whether an object is there before the arm reaches for it. Everything runs from a 12 V supply, stepped down to 5 V for the logic.

Wiring diagram: UNO Q, servo driver board, the four STS3215 servos, gripper servo, pressure sensors, camera, LED matrix and the 12 V to 5 V power chain

Software

It recognises you, then it moves.

On the Linux side a Python program reads the camera, runs face detection and keeps the state machine: waiting, someone recognised, pick, deliver, back to rest. On the microcontroller side a sketch talks to the servos and draws the face on the LED matrix. The two halves exchange short messages through the bridge library, so the arm never moves on a half-decided instruction.

Gallery

The arm on its base, the LED face lit, the trays in front
The arm on display at an Arduino event, with the pens lined up in their trays
The arm from three quarters, with pens in the trays around its base

Need something like this built?