Base shell
base_side_v2The 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.
2026
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.
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 ↗Every printed part, with its function and print settings.
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.
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.
The plate under the drum. Unscrew it and the whole electronics bay is open.
Covers the opening at the back of the base where the power connector and the switch come out.
The ring on top of the base that keeps the bearing in place and hides it.
Two thin rings, one inside and one outside the bearing, that centre it in the base top.
The large gear under the arm: the base servo turns it through the smaller servo gear, and the whole arm turns with it.
The small gear on the base servo. Together with the base gear it gives the first axis its reduction.
Holds the base servo inside the drum at the right distance from the big gear.
A small brace that stops the servo support from flexing when the gears push against each other.
Optional ring around the USB opening of the base, for a tidier cable exit.
Sits on the bearing and carries the shoulder servo. It is the piece that turns with the base and lifts the first arm.
The longest segment. It is printed in one piece and hollow, so the servo cables run inside it.
Closes the cable channel of the first arm.
The forearm: it carries the elbow and the wrist servo, and the head at its end.
Closes the cable channel of the second arm.
Six identical discs, two per joint, that cover the servo horns and the screws on both sides.
The last segment is also the face: it holds the camera on top, the LED matrix in front and the gripper servo below.
The back of the head, around the camera.
Holds the micro servo that opens and closes the gripper.
The bezel that holds the Modulino LED Matrix in the head and sets how much of it shows.
Two fingers: one is driven by the micro servo, the other is free and follows it.
The two soft pads screwed to the fingertips. Printed in flexible TPU so a pen is held without slipping and without being crushed.
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.
Joins the fan of trays to the base so they stay aligned with the arm.
A small clip that locks two neighbouring trays together.
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.
Turns the UNO Q serial port into the half-duplex bus the four STS3215 servos share, and feeds them 12 V.
Steps the 12 V of the power supply down to the 5 V that feed the UNO Q.
The first of four serial bus servos. It turns the whole arm through the pair of gears in the base.
Lifts the first arm. It carries the most load of the four, which is why the arm is kept light and hollow.
Moves the second arm.
Tilts the head, so the camera and the gripper point where they need to.
A small metal-gear PWM servo, driven directly from a pin of the UNO Q, that opens and closes the fingers.
Takes the weight of the arm so the base servo only turns it.
The USB camera on top of the head. Its stream goes to the Linux side of the UNO Q, where the face recognition runs.
The face. A 12 × 8 LED matrix on the Modulino connector, which shows the eyes and reacts to who is in front of it.
Electronics
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.
Software
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.