- Maker
- TheRobotStudio and LeRobot
- Actuators
- 5 joints plus gripper, 6 actuators
- Each one is a dimension in the action vector
- Servos
- Feetech STS3215 bus servos
- Supply voltage
- 7.4 V
- A 12 V supply destroys these servos in seconds
- Parts cost
- roughly 130 to 170 euro per arm in parts
- Platform support
- Fully supported
- Covered end to end by the guides on this site
- Also written as
- SO101
- Dataset format
- LeRobot v2.0 or v2.1
- What every model here reads. ACT, SmolVLA and Pi0.5 also take v3.0, GR00T does not.
The SO-101 is the successor to the SO-100 from TheRobotStudio and the LeRobot project: five joints plus a gripper, the same six Feetech STS3215 bus servos at 7.4 V, with a revised wrist. Parts run roughly 130 to 170 euro. On this platform the software workflow is identical to the SO-100, down to having the same four training guides.
What the SO-101 is
The SO-101 is the second iteration of the same open hardware design: five joints, a gripper, six actuators, a printed structure and one serial bus. The maker is the same pairing of TheRobotStudio and the LeRobot project, the servos are the same Feetech STS3215, the supply is the same 7.4 V. The revision sits in the wrist, and parts land at roughly 130 to 170 euro rather than 110 to 150.
It is worth saying plainly what this page will not do. It will not put a number on what the revised wrist buys you, because this platform does not measure arm mechanics. It measures policies: success rate on physical attempts, training cost, inference latency. A mechanical revision shows up in those numbers only indirectly, mixed with your camera placement and your demonstration quality.
What can be stated exactly is the support status. The catalog marks the SO-100 and the SO-101 as fully supported, so neither is a second class citizen in the driver, the recorder or the trainers. The cockpit at /live drives an SO-100, but it is the same cockpit you will use here.
Specifications
| Item | SO-101 |
|---|---|
| Designer | TheRobotStudio and LeRobot |
| Also written | SO101 |
| Kinematics | 5 joints plus gripper, 6 actuators |
| Servos | Feetech STS3215 bus servos |
| Servo supply | 7.4 V |
| Parts cost | roughly 130 to 170 euro per arm |
| Platform support | Full |
| Dataset format | LeRobot v2.0 |
What changed, and what did not
| Layer | SO-100 | SO-101 |
|---|---|---|
| Kinematics | 5 joints plus gripper | 5 joints plus gripper |
| Servos | Feetech STS3215 | Feetech STS3215 |
| Servo supply | 7.4 V | 7.4 V |
| Wrist | original design | revised |
| Parts cost | roughly 110 to 150 euro | roughly 130 to 170 euro |
| Platform support | Full | Full |
| Driver, recorder, dataset path | identical | identical |
Because the servo family and the bus are unchanged, the failure modes are unchanged too. The Feetech scoped fix pages apply here word for word: /fix/arm-twitches-then-sags for the sag that looks like software and is power, /fix/joint-stops-early for a joint refusing part of its travel, /fix/gripper-does-not-close for the one usually solved at the calibration rather than at the fingers.
An SO-101 uses the same Feetech STS3215 servos as an SO-100, so it wants 7.4 V and nothing above it. A 12 V supply kills the chain in seconds. Two arms on one bench is exactly the situation where the wrong lead gets picked up, so if a Koch v1.1 with its 12 V rail shares your desk, label both supplies at the plug end today.
Coming from an SO-100
The question people actually arrive with is whether existing work survives the swap. The answer splits cleanly: data survives without qualification, trained policies survive as candidates rather than as results.
Datasets carry over because a LeRobot v2.0 recording holds joint positions, camera frames and a task string, and nothing in that layout names an arm model. Six numbers per control step is six numbers per control step. An SO-100 dataset trains for an SO-101 with no conversion, and the two can share one dataset if the demonstrations really are the same task performed the same way.
Checkpoints are the delicate case. The action space has the same width, so a policy fine-tuned on SO-100 data will load and will move the arm. Whether it succeeds is separate, because the calibration zero belongs to one physical machine, the wrist geometry has been revised, and your cameras almost certainly moved during the swap. Any one of those shifts the mapping the policy learned. /glossary/checkpoint and /glossary/fine-tuning cover what is actually stored in one.
Run the same twenty scored physical attempts on the new arm that you would run on a fresh policy. /fix/loss-falls-policy-does-nothing describes that procedure, and /fix/policy-only-works-in-one-setup is the page for a policy that worked yesterday and stopped after a physical change. Retraining is a real option, but restoring the setup is cheaper and works more often than people expect.
From the carton to the first movement
- 1Confirm the supply says 7.4 V
Do this before the first screw, especially if this is a second arm and there are already supplies on the bench. /learn/so-100-getting-started carries the full build and applies here apart from the wrist assembly order.
- 2Set the ids while the connectors are reachable
The bus addresses servos by id, so each one has to be written before it disappears inside a link. This is the step that costs a disassembly if you skip it.
- 3Install the client and pair this machine
The installer from /download brings the CLI and the desktop client together with the driver. The pairing code is issued by the pairing screen at /dashboard/client/robots/new, which you reach by adding a robot inside an environment. It generates the code on load, hands it to a client on the same machine without asking, and shows it for fifteen minutes so a remote host can be paired by hand.
bashcurl -fsSL https://www.ay-robots.com/install.sh | sh ay-robots pair 4QD2-8HRM-1XV6 ay-robots status - 4Count the servos in the device list
One arm, one serial port, six servos answering, plus cameras. If a servo is missing here the chain is open somewhere, and no amount of software will find it for you.
bashay-robots devices - 5Calibrate this arm, even if you calibrated the last one
The zero reference belongs to one physical machine. Guide the joints to the neutral pose, press Enter, then send the arm home to see the first commanded motion.
bashay-robots calibrate ay-robots home
# Record with the same task string every single episode
ay-robots record --task "put the lid on the jar" --episodes 40 --cameras wrist,top
# Review, then push the dataset to the cloud
ay-robots datasets list --local
ay-robots datasets upload jar-lid --name jar-lid-so101
# Training is started under Training in the dashboard, or through the
# start_training tool on the MCP server. The CLI has no training subcommand.
# Bring a finished checkpoint back to this arm
ay-robots run --model act --checkpoint s3://runs/jar-lid-so101/step-100000 --task "put the lid on the jar"
ay-robots stopWhat the platform trains and runs on an SO-101
Four written guides, one per policy family, exactly as for the SO-100. The episode floors and GPU tiers below are properties of the model rather than the arm, so they read the same on every fixed arm here.
| Policy | Guide | GPU tier | Episodes to start | Inference per step |
|---|---|---|---|---|
| SmolVLA | /train/smolvla-on-so-101 | RTX 4090 or any 24 GB card | 30 | about 245 ms |
| ACT | /train/act-on-so-101 | RTX 4090 or any 24 GB card | 50 | about 20 ms |
| GR00T N1.7 | /train/groot-n1-7-on-so-101 | A100 80 GB or H100 80 GB | 50 | about 152 ms |
| Pi0.5 | /train/pi0-5-on-so-101 | A100 80 GB or H100 80 GB | 50 | about 485 ms |
Defaults sit on /policies/smolvla, /policies/act, /policies/groot-n1-7 and /policies/pi0-5. If a run refuses your dataset immediately after upload, the cause is the format rather than the arm, and /fix/dataset-rejected-v3 covers the one that catches most people.
Where the SO-101 sits against the other three
- Against the SO-100: identical servos, identical voltage, identical software, a revised wrist and roughly 20 euro more in parts. Both hold full support.
- Against the Koch v1.1: a different servo ecosystem. Koch runs Dynamixel XL330 and XL430 on 5 V and 12 V rails at roughly 250 to 350 euro, so driver, wiring and budget differ while the dataset and training path do not.
- Against LeKiwi: an SO-100 arm on a three wheel holonomic base at roughly 400 to 500 euro. Its wheel velocities enter the action vector, so its datasets are a different shape and its checkpoints do not interchange.
Frequently asked questions
Should I buy an SO-101 if my SO-100 already works?▾
Nothing on this platform pushes you to. Both are fully supported, run the same servos at the same voltage and have the same four training guides. The case for the SO-101 is mechanical, and it is yours to judge with the arm in your hands.
Do SO-100 datasets work for SO-101 training?▾
Yes, with no conversion. A LeRobot v2.0 dataset stores joint positions, camera frames and the task string, and none of that identifies the arm model. The action width is six values on both machines.
Will a policy trained on an SO-100 run on my SO-101?▾
It will load and move the arm, because the action width matches. Whether it succeeds depends on the new calibration zero, the revised wrist geometry and whether the cameras returned to the same place. Score twenty physical attempts before trusting it.
Is the voltage different from the SO-100?▾
No. Both use Feetech STS3215 servos at 7.4 V, and a 12 V supply destroys an SO-101 exactly as quickly as it destroys an SO-100.
Does the platform treat the two arms differently anywhere?▾
Only in the labels. Both hold full support, both appear in every training guide family, and the CLI, the recorder and the dataset format are shared. The device list shows one arm on one serial port either way.
Was this page helpful?
Still choosing? The arm comparisons put two of them side by side, and /policies covers the models you can train on any of them.
Drive a real arm before you build one
The arm on /live is a real SO-100. Whenever it is online, anyone can drive it from the browser without a signup - the closest look at this class of hardware you can get without owning any.