The robot arm took about two hours to assemble. Getting everything it needed onto my desk took the better part of two months 😅 That inversion is the real story of this post: in robotics, the hard part of getting started isn't the robot itself, or training AI models for it. It's everything around the robot: researching the right setup, buying the hardware, and the logistics of getting it all onto your desk.
The vendor hunt
I'd decided on an SO-101, the open-source arm designed by Hugging Face and Robot Studio. The kit is two arms, a leader you move by hand and a follower arm that mirrors it. It's the arm the LeRobot ecosystem is built around, which is a huge plus for me.
Deciding what to buy took an evening. Deciding where to buy it took a bit longer, because I hit a problem I didn't expect: as a beginner, you can't yet tell which vendors are legit.
Several shops sell SO-101 kits, at different prices, with different bundles, and to a newcomer they all look equally plausible and equally sketchy. I even had my doubts about Seeed Studio, which is funny in hindsight, because Seeed turns out to be one of the most established hardware vendors in the space. I ordered the SO-101 Pro version as two kits: the 3D-printed parts (€27 list today) and the servo motor kit (€224 list today) from Seeed Studio, and then did the thing that defines this journey: I waited. About two weeks, while it shipped from China to Berlin.


The easy part
Assembly was genuinely easy: about two to two and a half hours, following the LeRobot assembly guide (which is good) plus a couple of YouTube videos (e.g. this one and this one).



Two real-world notes from those hours assembling the arm:
The first is voltage. The SO-101 Pro, unlike the standard kit, runs the leader arm at 5V and the follower at 12V, two different power supplies that look similar. Plug the wrong one into the wrong arm and you can cook a servo. We double-checked and triple-checked every connection like we were defusing something 😅
The second is that atoms have tolerances. A few screw holes in the 3D-printed skeleton came out slightly undersized, so some screws needed a bit of convincing with the screwdriver.


Calibration, and the moment it becomes a robot
Before the two arms can talk, you calibrate them: you move each joint to its limits so the software learns where every motor's range of motion begins and ends. It's a strange little ritual (you're literally teaching the robot the shape of its own body) and it matters, because everything that follows trusts those numbers.
Then comes teleoperation, and the payoff! The leader arm is really just six motors being used backwards: you move it, and its joint positions are read out as commands. The follower receives those positions and mirrors them in real time. On paper that's all it is. In your hands, it's something else: you move your arm, and a robot moves with you, instantly. That was the moment the box of parts stopped being a kit and became a robot 🙌
Then I needed cameras
With teleop working, I wanted to move straight on to training a policy (the AI model that decides how the robot moves), and hit the pause nobody plans for: to train anything, the robot needs to see, and I had no cameras. So I went back to researching what I'd need to give my arm eyes.
I spent a few days on questions I couldn't yet judge: Do I need a depth camera, or is plain RGB enough? How high a resolution? How many cameras, and where do they go? The answers, for imitation learning on a desk arm, turned out to be reassuringly boring: no depth needed (the models learn from plain RGB video); 1080p is plenty; and two camera views is the standard setup: one camera on the gripper seeing what the "hand" sees, and one external camera watching the whole scene.
I bought a Logitech C922 Pro with a small tripod for the external view (about €58) and a WowRobo 2MP module made to mount on the SO-101's gripper (€45 list today). Then I discovered my MacBook doesn't have enough ports for two arms plus two cameras, so I added an Anker 4-port USB hub and a twin pack of USB-C-to-USB adapters: about €30 of USB plumbing.
The camera that never arrived
The gripper camera earned its own saga. DHL marked a delivery attempt on a day my wife and I were both home all day, yet the bell never rang. For this one package there was no pickup-shop fallback, so it went back to Munich, where it came from. Several support emails to OpenELab later, they kindly shipped a replacement. Total detour: two to three weeks, for a camera that fits in a pocket. The desk was ready, the robot was calibrated, and we were all waiting for a doorbell.
The full kit
What getting started actually took, with prices as listed today (I bought some of it earlier at slightly different prices):
- SO-ARM101 Pro 3D-printed parts: €27
- SO-ARM101 Pro servo motor kit: €224
- Logitech C922 Pro webcam + tripod (external view): about €58
- WowRobo 2MP gripper camera: €45
- Anker 4-port USB hub + 2× USB-C-to-USB adapters: about €30
- Patience: included free, required constantly
All-in, roughly €384 with shipping. Not nothing, but consider what it buys: a real two-arm robot, six motors per arm, that you can teach things.
What I learned
- Assembly is the easy part. Good docs and a couple of videos got a non-engineer through it in an afternoon.
- Hardware means research and logistics. Software is
npm install; robotics is vendor research, customs, doorbells, waiting for delivery and support tickets. The physical world is slower than the digital world. - Voltage is real. 5V leader, 12V follower, one careless plug between them and you're shopping for servos again (the most expensive part of the arm!).
- The boring camera answer is fine. Plain RGB webcams, 1080p, two views. Don't overthink it at the start.
Everything was finally on the desk: two arms, two cameras, one very full USB hub. Time to teach it something. Next post: 54 demonstrations, a day-long training run on my laptop, and a robot that picks up a sock by itself, 2 times out of 10.
Comments
Loading comments…