SO-100
The first-generation low-cost, open-source 3D-printed arm from TheRobotStudio and Hugging Face. It has five joints plus a gripper and uses Feetech STS3215 servos. The maker now marks the SO-100 docs as deprecated in favour of the SO-101, but LeRobot still supports it natively.
open hardware · Apache-2.0LeRobot native since 0.3.2verified 2026-10-24aka SO-ARM100, SO100, SO-100 arm, Standard Open Arm 100, so100_follower, so100_leader
Policies on SO-100 13 with evidence · 2 unknown
| Policy | State | Tier | Verified | Detail |
|---|---|---|---|---|
| ACT Imitation | works | T1 · upstream documented | 2026-10-24 1d ago | |
| Diffusion Policy Imitation | works with caveats | T3 · community reported | 2026-10-25 today | Community-reported only; not documented upstream or maintainer-tested. |
| EO-1 VLA | works | T1 · upstream documented | 2026-10-24 1d ago | |
| Evo-1 VLA | works | T1 · upstream documented | 2026-10-24 1d ago | |
| GR00T N1.7 VLA | works | T1 · upstream documented | 2026-10-24 1d ago | |
| HIL-SERL RL | works with caveats | T1 · upstream documented | 2026-10-24 1d ago | The guide's documented intervention path is a gamepad or keyboard in end-effector space (needs a URDF); using an SO leader arm as the intervention device is reported broken in open issue #2952, not yet confirmed or fixed by maintainers. |
| MolmoAct2 VLA | works with caveats | T1 · upstream documented | 2026-10-24 1d ago | The MolmoAct2-SO100_101 weights expect the pre-LeRobot-0.5.0 joint calibration convention: lerobot/MolmoAct2-SO100_101-LeRobot includes the frame correction, but self-converted or fine-tuned checkpoints must set joint_signs/joint_offsets or the arm may move in the wrong direction. |
| π0-FAST VLA | partial | T3 · community reported | 2026-10-24 1d ago | Training evidenced by public checkpoint(s); on-robot inference not documented by a primary source. |
| π0 VLA | works | T1 · upstream documented | 2026-10-24 1d ago | |
| π0.5 VLA | partial | T3 · community reported | 2026-10-25 today | Training evidenced by public checkpoint(s); on-robot inference not documented by a primary source. |
| SmolVLA VLA | works | T1 · upstream documented | 2026-10-24 1d ago | |
| WALL-OSS VLA | partial | T3 · community reported | 2026-10-24 1d ago | Training evidenced by public checkpoint(s); on-robot inference not documented by a primary source. |
| X-VLA VLA | partial | T3 · community reported | 2026-10-24 1d ago | Training evidenced by public checkpoint(s); on-robot inference not documented by a primary source. |
No verified evidence, but both are available in LeRobot (ecosystem context): Fast-WAM, LingBot-VA, Multitask DiT, TD-MPC, VLA-JEPA, VQ-BeT.
Not yet verified: OpenVLA-OFT, OpenVLA. Have evidence?
Specifications
- Degrees of freedom
- 5 (Six servos per follower: shoulder_pan, shoulder_lift, elbow_flex, wrist_flex, wrist_roll + gripper.)src
- Arms
- 1
- Actuators
- Feetech STS3215 serial bus servos (6 per arm)src
- BOM / build
- github.com/TheRobotStudio/SO-ARM100/blob/main/SO100.md
- Homepage
- github.com/TheRobotStudio/SO-ARM100
- Supported sensors
- RGB, single camera, RGB, two cameras (wrist + overview), RGB, three or more cameras, Intel RealSense depth
- Teleoperation
- SO-100 leader arm (so100_leader)
The SO-101 is the maker's recommended successor. Its improvements are better wiring, easier assembly (no gear removal) and updated motors. LeRobot drives both arms with the same code.
Framework support
| Framework | Support | Since | Type string | Docs |
|---|---|---|---|---|
| LeRobot | nativesrc | 0.3.2 | so100_follower | docs |
| LeRobot: Leader: --teleop.type=so100_leader. 0.3.x also registered so100_follower_end_effector, which is gone from 0.4.0. Since 0.4.3 the so100_follower type is registered by the shared so_follower module (PR #2763), which merged the SO-100 and SO-101 code. The type string did not change. SO-100 support was added on main in Oct 2024 (PR #419), after the only earlier PyPI release (0.1.0, 2024-03-09), so 0.3.2 is the first release that includes it. | ||||
Sources
- T1 · upstream documentedofficial-docssource 2026-08-03verified 2026-10-24 (1d ago)lerobot 0.6.1
LeRobot README lists SO100 first among natively supported hardware.
“SO100, LeKiwi, Koch, HopeJR, OMX, EarthRover, Reachy2, Gamepads, Keyboards, Phones, OpenARM, Unitree G1, reBot B601.”
https://github.com/huggingface/lerobot/blob/v0.6.1/README.md - T1 · upstream documentedofficial-docssource 2026-08-03verified 2026-10-24 (1d ago)lerobot 0.6.1
SO-100 assembly/setup guide in LeRobot docs.
“In the steps below, we explain how to assemble the SO-100 robot.”
https://github.com/huggingface/lerobot/blob/v0.6.1/docs/source/so100.mdx - T1 · upstream documentedsource-codesource 2026-08-03verified 2026-10-24 (1d ago)lerobot 0.6.1
so_follower config registers both so101_follower and so100_follower robot types.
“@RobotConfig.register_subclass("so101_follower") @RobotConfig.register_subclass("so100_follower")”
https://github.com/huggingface/lerobot/blob/v0.6.1/src/lerobot/robots/so_follower/config_so_follower.py - T1 · upstream documentedsource-codesource 2026-08-03verified 2026-10-24 (1d ago)lerobot 0.6.1
Motor map: five arm joints plus gripper, all sts3215.
“"shoulder_pan": Motor(1, "sts3215", norm_mode_body),”
https://github.com/huggingface/lerobot/blob/v0.6.1/src/lerobot/robots/so_follower/so_follower.py - T1 · upstream documentedsource-codesource 2025-08-01verified 2026-10-24 (1d ago)lerobot 0.3.2
At v0.3.2 the so100_follower and so100_follower_end_effector types were registered.
“@RobotConfig.register_subclass("so100_follower_end_effector")”
https://github.com/huggingface/lerobot/blob/v0.3.2/src/lerobot/robots/so100_follower/config_so100_follower.py - T1 · upstream documentedrelease-notessource 2025-08-01verified 2026-10-24 (1d ago)lerobot 0.3.2
v0.3.2 release notes (full history since project start) include the PR that added SO-100 (merged 2024-10-25).
“Add FeetechMotorsBus, SO-100, Moss-v1 by @Cadene in https://github.com/huggingface/lerobot/pull/419”
https://github.com/huggingface/lerobot/releases/tag/v0.3.2 - T1 · upstream documentedrelease-notessource 2026-01-22verified 2026-10-24 (1d ago)lerobot 0.4.3
v0.4.3 merged the SO-100/SO-101 implementations into one so_follower module.
“feat(robots): consolidate SO arms implementation by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2763”
https://github.com/huggingface/lerobot/releases/tag/v0.4.3 - T1 · upstream documentedofficial-docssource 2026-08-03verified 2026-10-24 (1d ago)lerobot 0.6.1
LeRobot camera classes: OpenCV (USB webcams etc.) and RealSense (with depth).
“| `RealSenseCamera` | Intel RealSense (with depth) |”
https://github.com/huggingface/lerobot/blob/v0.6.1/docs/source/cameras.mdx - T1 · upstream documentedvendor-docsverified 2026-10-24 (1d ago)
Maker README marks the SO-100 docs as deprecated in favour of the SO-101.
“which is deprecated.”
https://github.com/TheRobotStudio/SO-ARM100/blob/a758567c3978dfeefe282ede0500085a48fe8f78/README.md - T1 · upstream documentedvendor-docsverified 2026-10-24 (1d ago)
SO-ARM100 repository is Apache-2.0 licensed.
“Apache License Version 2.0, January 2004”
https://github.com/TheRobotStudio/SO-ARM100/blob/a758567c3978dfeefe282ede0500085a48fe8f78/LICENSE