drag to orbit · sliders move the joints
strands-arm · one SO-101 pair, one robot
Put the pair on wheels. Give it eyes.
Every SO-101 kit ships a follower that works and a leader that goes back in the box. strands-arm puts the follower on a printed three-wheel base with a Nicla Vision as its eyes, and gives the leader a camera head so it drives the robot and films it.
Two arms shipped. One desk.
The pair is bolted to a desk. The leader goes back in the box.¶

01 · the problem
Nine servos, one desk, one tripod¶
The SO-101 is the arm LeRobot ships its tutorials for. The follower is clamped to a desk and filmed by a webcam on a tripod, one fixed view per dataset. The leader exists for one job, teleop, and idles the rest of the time: six readable, drivable servos on one bus. The three wheel servos of a LeKiwi kit sit in a drawer next to it. Nobody builds for the pair as a robot.

02 · the insight
Same servos, same bus, one printed body¶
Every servo in the box speaks the same protocol. A printed three-wheel body puts the follower on the LeKiwi wheels, an Arduino UNO Q under it, a Nicla Vision on the arm. The leader loses its handle and gains a 15.4 g pan/tilt head: it already knows where it is, so it can drive the robot and film it from a viewpoint that moves. Nothing drilled, ten screws into servos, one guard in front of every write.

03 · the proof
The leader is built. The body is designed. Nothing is hidden.¶
The leader's head is printed, fitted and on the arm: six servos on one port, the Nicla streaming at 6 to 13 fps, the head tracking a face, teach, replay and named poses working, every joint's real travel measured by hand into the guard and the servos' EEPROM. The base has kinematics, a wheel bus that refuses the arm's port and a 300 ms deadman; its body is three pods and two decks, fit-checked with the folded arm. 1244 tests run, and every guard rule names the dated incident that wrote it. Why the pair · The guard · The base.
By the numbers
Head: from the sliced plate, hardware/cad/result.json, PLA 0.20 on a Bambu X2D, tree supports; ten screws, four of them the handle's own. Body: hardware/cad/base/plates/, three pods and two decks, 14.7 h, 311 g, no supports. The head · The base.
The path
Print tonight. Assemble tomorrow. Then let it find home.¶
01Print it
The head: one plate, three parts, 1 h 28 min, 15.4 g. The body: three plates, 14.7 h, 311 g, no supports.
Print guide →
02Assemble it
Handle off the leader, six steps, ten screws, all into servos. The lid snaps on.
Six steps →
03Calibrate it
strands-arm calibrate finds the folded home from the stops; --mode manual lets your hand measure the whole travel.
04Run it
Live 3D mirror, camera, IMU, ToF, a drive pad for the wheels, a chat agent. Also a CLI and MCP tools.
Dashboard →What you need
One board. One computer. Two prints.¶
For the leader's head, the new spend is the Nicla Vision and six screws. For the body, it is the UNO Q and the PLA; the wheel servos, wheels, hubs, adapter and pack are the LeKiwi kit. Flash the Nicla with four files, then install from the clone:
git clone https://github.com/cagataycali/strands-arm
cd strands-arm && pip install -e ".[dashboard]"
strands-arm doctor # read-only
strands-arm calibrate # finds home
strands-arm dash # :8090
| already in the boxes | you add |
|---|---|
| SO-101 pair: twelve STS3215, two bus adapters, their supplies | one Arduino Nicla Vision per camera, micro-USB along the bus |
| the four horn screws under the leader's handle | 2 × M2.5 × 5, 4 × M2 × 4 self-tap for the head |
| LeKiwi kit: three STS3215 12 V, three 60 mm omni wheels, brass hubs, 3S pack, 12 to 5 V converter | an Arduino UNO Q 4 GB |
15.4 g of PLA for the head, 311 g for the body; plates sliced for a Bambu X2D, STLs in hardware/cad/ for any slicer |