SO-ARM 102
English · Русский · Español · Français · Deutsch · Português (Brasil) · 简体中文 · 日本語 · हिन्दी · العربية
🎥 Watch the preview video · 🛒 Buy the kit
An open-source leader + follower robot arm kit with 5 degrees of freedom plus a gripper for teleoperation and imitation learning, designed by Robonine as a stiffer, faster successor to the SO-ARM 101.
DIY budget: ~$404 for components, or ~$444 including printing material. BOM summary · Itemised costs and purchase links
Rather not source the parts and print them yourself? Buy the SO-ARM 102 kit.
✨ What changed against SO-ARM 101
| SO-ARM 101 | SO-ARM 102 | |
|---|---|---|
| Gripper | Angular jaw | Parallel gripper, 85 mm span |
| Frame material | PLA | PET-CF (Fiberon PET-CF17 tested) |
| Structure | Solid links | Topology-optimised links |
| Base rotation range | 220° | 352° |
| Horizontal reach | 441 mm | 483 mm |
| Deflection at the gripper, 300 g load ¹ | 7.5 mm | 3.4–3.9 mm |
| Shoulder and elbow speed | 45 RPM (STS3215) | 75 RPM (STS3250) |
| Noise at 1 m | 70 dB | 60 dB |
¹ Both arms built with printed servo dummies, so the frame is compared, not the motors. Full results and test conditions are in docs/specifications.md.
The arm keeps the SO-ARM 101 joint layout, so it works with Hugging Face LeRobot datasets and policies.
🎥 Preview
🤝 Configurations
Single-arm: one leader + one follower
The standard kit. Move the leader by hand, and the follower repeats the motion. Use it for teleoperation and for recording demonstrations for imitation learning.
Bimanual: two leaders + two followers
Two kits side by side. Each hand drives its own leader, so the followers can pass objects, hold and work on a part, or do any task that needs two hands.
The two arms
| Follower | Leader |
|---|---|
![]() |
![]() |
| Parallel gripper, wrist camera, 12 V | Handle with trigger, 5 V |
🚀 Build it in four steps
Prefer a ready kit? Buy the SO-ARM 102 kit.
1. Print the parts
Individual parts fit a 180 × 180 mm bed. The largest part is 160 mm long. The supplied 3MF plate layouts use a 256 × 256 mm bed.
- 3MF slicer projects with saved orientation and support settings:
models/3mf/— leader, follower arm, follower gripper and board case - Project contents and printer profiles: models/README.md
- STL files, ready to slice:
models/stl/ - STEP sources:
models/step/ - Material, settings and part quantities: docs/printing.md
The earlier test-arm settings gave slicer estimates of about 500 g of filament and 21 h for the arm parts, excluding the gripper. Re-slice the 3MF projects for current estimates.
2. Buy the hardware
Source the components from the BOM summary and full BOM with purchase links. Budget $404.09 for components, or $443.68 including printing material, before shipping and taxes.
| Arm | Servos | Controller | Power |
|---|---|---|---|
| Follower | 2 × STS3235, 2 × STS3250, 2 × STS3215 | Waveshare Bus Servo Driver HAT | 12 V |
| Leader | 6 × STS3215 | Waveshare Bus Servo Adapter | 5 V |
⚠️ The leader runs on 5 V and the follower on 12 V. Do not swap the power supplies.
3. Assemble
- Printable booklet, 36 pages A5: docs/SO-ARM102_assembly_A5_v0.6.pdf
- Step list with parts and fasteners: docs/assembly-guide.md
Tools: hex keys 1.5 mm (M2 screws) and 2 mm (M3 screws).
4. Set up the software
Servo IDs, calibration and lessons: lab.robonine.com. The arm uses the LeRobot SO-101 leader/follower workflow.
Bill of materials
Quantities and reference costs for one leader + one follower:
| Category / purchase links | Kit contents | Total (USD) |
|---|---|---|
| Servos | 6 × STS3215 7.4 V, 2 × STS3215 12 V, 2 × STS3235, 2 × STS3250 | $283.62 |
| Electronics | 2 controllers, 2 power supplies, 2 USB cables, 1 wrist camera | $71.50 |
| Mechanical parts | 4 bearings, 2 steel guide rods, 4 table clamps | $37.76 |
| Fasteners | Screws and nuts; specified servo-kit screws included | $11.21 |
| Components subtotal | $404.09 | |
| Printing material | 0.6 kg PET-CF17 + 0.6 kg PETG allowance | $39.59 |
| Total with printing material | $443.68 |
Buying the example full packs and filament spools from scratch costs about $504, including unused spares. These are reference estimates, not new supplier quotes. Shipping, taxes, tools, a computer, a printer, electricity and assembly labour are excluded. Confirm supplier prices, variants and minimum order quantities before ordering; re-slice the 3MF projects to check filament consumption.
Full BOM, purchase links and cost assumptions.
URDF export
The current standalone export is in simulation/urdf/:
URDF · Xacro.
Keep meshes/ beside the description files; mesh paths are relative to this folder.
- Visuals: STL meshes. Collisions: fitted, independently rotated boxes on all eight links.
- Mass estimate: PLA, 30% infill, 6 perimeters, 6 top/bottom layers, 0.2 mm layer height, and 0.40 mm extrusion width. These are simulation assumptions; use the printing guide for fabrication settings.
- Hardware masses: six motors at 70 g each; base bearing at 105 g. Total estimated model mass: 0.889 kg.
- Gripper:
clamp2mimicsclamp1with multiplier-1.
Export settings and mass properties record the assumptions. Geometry and inertia checks are recorded in export_verification.json.
📁 Repository structure
├── models/
│ ├── 3mf/ # Slicer projects: leader, follower, gripper and board case
│ ├── stl/ # Print-ready meshes
│ │ ├── common/ # parts used by both arms
│ │ ├── follower/ # parallel gripper, camera mount, board case
│ │ └── leader/ # handle, trigger, wrist roll, board case
│ └── step/ # CAD sources, same layout as stl/
├── docs/
│ ├── printing.md # Material, slicer settings, quantities
│ ├── bom.md # Bill of materials
│ ├── assembly-guide.md # Step list with parts and fasteners
│ ├── specifications.md # Geometry, servos, measured results vs SO-ARM 101
│ └── SO-ARM102_assembly_A5_v0.6.pdf
├── assets/
│ ├── images/ # Photos, renders, booklet pages, test photos
│ └── video/ # Preview video and GIF
├── LICENSING.md # Which licence covers which file
└── NOTICE # Third-party attribution
⚠️ Known issues
This is the first public release. An independent test build found the following. They are being fixed and will land in the next release.
- Two models are reported missing from the release set. One is known: the camera holder still lacks a STEP source.
- M2 screws are hard to reach in several places. Expect to fight a few of them.
- The gripper clamps run tight on carbon rods. The clamp bores are sized for 6.1 mm. Rod diameters vary between suppliers, so check the fit before assembly.
- Check the servo cable lengths before closing each joint, especially from the base to the shoulder.
- The assembly order is awkward in two places of the booklet. Read two steps ahead before fastening.
- Leader joints can feel loose. Adding 8 × 2 mm rubber O-rings between each servo and its horn gives the leader smooth, silent friction. Use two per servo on joints 1–4 and one on joints 5–6.
Found something else? Please open an issue.
🔗 Related projects
- SO-ARM100/101 Parallel Gripper, the gripper the SO-ARM 102 gripper grew from
- SO-ARM101 by TheRobotStudio, the arm this design succeeds
- Practical comparison of smart serial servos, the tests behind the servo choice
- Choosing a filament for robotic arms, the tests behind PET-CF
📄 License
Copyright (c) 2026 Robonine. Different kinds of material carry different licences:
| Material | Licence |
|---|---|
Hardware designs in models/ |
CERN-OHL-P-2.0 |
| Software and configuration | Apache-2.0 |
Documentation and images in docs/, assets/, all README.md |
CC BY 4.0 |
See LICENSING.md and REUSE.toml for the file-by-file map.
👥 Team
| Name | Role | Contact |
|---|---|---|
| Alan Subin | Design Engineer: mechanical design, CAD, assembly booklet | |
| Boris Kotov | Software and Test Engineer: prototypes, printing, test rigs | Telegram |
| Nikita Bragin | Project Manager | |
| Mikhail Chistiakov | Industrial Designer: look and form of the arm | Telegram |
| Mikhail Zhmaylo | Structural Engineer: stiffness models, design changes to cut deflection | Telegram |
| Vladislav Eremenko | Structural Engineer: strength and thermal analysis, topology optimisation | Telegram |
| Vladimir Osipov | Tester and Consultant: independent test build |
Built for the robotics community by Robonine 🤖





