25 min

What is in the box, and what is not

The SO-101 is a published bill of materials rather than a product, and every line in that list is a decision you are now responsible for.

Where you are. You have trained policies in simulation, measured them with an evaluation harness you wrote yourself, and chosen a path in lesson 0. Everything so far could be reset with a keystroke. On the hardware path this module is the one where it cannot, and it starts with a table covered in parts. On the simulation path, read this one anyway: the bill of materials is a set of decisions, and reading it is the skill whether or not you buy anything.

Twelve identical motors

Tip the bags out. Twelve motors. Same size, same colour, same three-pin socket on the same face. Held side by side there is nothing to tell them apart.

Inside, they are three different machines. Seven of them turn 345 motor revolutions into one turn of the output shaft. Two of them are 191 to one. Three are 147 to one. Put the wrong one in the wrong place and the arm still bolts together, still powers up, and still moves. It just moves wrong, and you will not find out until you are teleoperating and one joint feels heavier than everything around it.

Count the things in that paragraph that would have raised an exception in software. There are none. That is the shape of this entire module.

The idea in one paragraph

The SO-101 is a published bill of materials, a folder of printable parts and a set of assembly videos. There is no product, no manual in the box, and no support line. That is the trade you are taking: roughly $230 of parts for two arms, against tens of thousands for an industrial arm, in exchange for owning every decision yourself. So read the parts list as a design document rather than a shopping list. Every line is somebody’s decision about torque, voltage or cost, and three of those decisions will cost you a weekend if you meet them by surprise. Read it just as carefully for what is absent. Cameras, controlled light, a rigid table and a printer that prints to size are not in the bill of materials, and they will decide whether your policy works far more than the motors will.

The two arms are not the same arm

Both arms have six motors and the same printed skeleton. The difference is inside the motors.

ArmMotorsPart codeReduction
Follower6C001345:1
Leader1C001345:1
Leader2C044191:1
Leader3C046147:1

Follower the arm that holds itself up and carries things C001 345:1 C001 345:1 C001 345:1 C001 345:1 C001 345:1 C001 345:1 six identical parts - the highest reduction, bought for torque Leader the arm your hand moves C001 345:1 C044 191:1 C044 191:1 C046 147:1 C046 147:1 C046 147:1 three reductions in one arm - lower ratios are easier for your hand to backdrive
The follower's six motors are all the 345 to 1 part; the leader mixes three different reductions in one arm, and none of them can be told apart from the outside

Wider than the screen; scroll it sideways.

The published list gives quantities, not joint assignments, and it does not say why the leader is mixed. The mechanism is the gearbox trade from Module 0. A high reduction multiplies torque and destroys backdrivability: the arm can push the world, but the world cannot push the arm. The follower needs torque, because it holds itself up and carries things. The leader needs the opposite, because the world pushing the arm is the entire job. Your hand is the world. Lower reductions mean less friction to fight and less reflected inertia to accelerate, which is what “this arm feels nice to move” actually is. Treat that as a reading of the parts list rather than a quote from it, but it is the reading that fits.

What the parts list costs

These are the published unit prices for the self-source route, both arms.

PartQtyUnit
STS3215 servo, 7.4 V, 345:1 (C001)7$13.89
STS3215 servo, 7.4 V, 191:1 (C044)2$13.89
STS3215 servo, 7.4 V, 147:1 (C046)3$13.89
Motor control board (Waveshare)2$10.60
USB-C cable, 2 pack1$7.00
Power supply2$10.00
Table clamps, 4 pack1$9.00
Screwdriver set, Phillips #0 and #11$6.00

That totals $229.88 for the pair. A follower on its own, six 345:1 motors and one board, comes to $121.94. The arithmetic is worth doing yourself rather than trusting; code/bom_cost.py does it and checks its own answer against both published totals.

Three routes to a working arm

Print and source cheapest, slowest print parts source motors assemble needs a printer that passes the gauge test Parts kit the usual answer printed frame + boards assemble somebody else's print, still your build Assembled fastest, dearest arm arrives built you skip the gates, and learn the least about it
Three routes: print and source the parts yourself, buy a kit of printed parts and electronics, or buy an arm already assembled

Wider than the screen; scroll it sideways.

The repository lists kit vendors serving different regions: Robonine, PartaBot, ForgeMotion Labs, Seeed Studio, WowRobo, RoboSEasy, NeoBot and Autodiscovery. Some sell parts kits, some sell printed frames, some sell fully assembled arms.

Whichever route you take, some costs sit outside every version of the list: filament or a print service, two webcams, a camera mount, and a spare motor or two once you understand which one dies. Adding those to the parts total puts a realistic two-arm setup with two webcams somewhere around $280 to $400 if you already own a printer. That range is arithmetic laid on top of the published prices, not a figure anyone publishes.

If you print it yourself

The printed parts are the arm’s skeleton. The settings the repository gives are specific, and they matter more than they look.

SettingValue
MaterialPLA+
Infill15%
Nozzle and layer0.4 mm at 0.2 mm, or 0.6 mm at 0.4 mm
Supportson, ignoring slopes over 45 degrees, and never inside horizontal screw holes
Tested printersPrusa MINI+, UP Plus 2, Creality Ender 3, Bambu Lab A, P and X series

Parts come pre-oriented, one file per arm, in two bed sizes: Ender_Follower_SO101.stl and Ender_Leader_SO101.stl for a 220 by 220 mm bed, Prusa_Follower_SO101.stl and Prusa_Leader_SO101.stl for 205 by 250 mm. No printer means 3DPRINT.md in the repository, which lists print services.

There is one more file group in that folder, and it decides whether any of the rest works: the accuracy gauges. STL/Gauges/Gauge_0.STL and Gauge_tight_1.STL check the fit against a real STS3215, and Lego_Size_Test_02_zero.STL with its minuspoint1 twin check against a 4 by 2 Lego brick if your motors have not arrived yet. Print those before you print an arm. The next lesson makes this a gate you cannot walk past, because it is the step people scroll by and the one that turns a weekend into a box of parts a fraction of a millimetre too tight to take a motor.

The one line where a mistake costs parts

The bill of materials specifies the 7.4 V variant of the STS3215 throughout. There is also a 12 V variant of the same motor sold for builds that want more torque, and the repository says plainly that choosing it means buying a 12 V 5 A+ supply “instead of a 5 V one”.

Read that sentence twice, because it contains the trap. The supply that goes with the 7.4 V motors is a 5 V supply, and that is what the bill of materials links to. LeRobot’s own guide names the two variants as “a 5 V / 7.4 V build and a 12 V build”, which is the honest way to say it: 7.4 V is the motor’s rating, not the number on your power brick.

7.4 V supply the one in the parts list STS3215, 7.4 V build all twelve motors Steady LEDs the arm answers 12 V supply for the other motor variant STS3215, 7.4 V build the same motors Blinking LEDs error state, motors at risk on the SO-101 the leader is always the 7.4 V build
Matching supply to motor variant: the 7.4 volt motors on their 5 volt supply run with steady LEDs, while a 12 volt supply on the same motors puts them into a blinking error state

Wider than the screen; scroll it sideways.

Worth adding before you start

Three optional things from the same repository are worth deciding on now rather than after the first failure.

  • A compliant gripper, printed in TPU 95A, or the newer version with a TPU finger on a PLA base and two extra M3 screws. A flexible finger forgives a grasp that is a few millimetres off, and being a few millimetres off is exactly how a first policy fails.
  • Camera mounts. The repository ships an overhead mount and several wrist mounts, sized for a 32 by 32 mm UVC module, an Intel RealSense D405 or D435, or a named Vinmooog webcam. Print the mount with the arm and decide about cameras in the cameras lesson.
  • More clamps than you think. Four come in the list. An arm that can move itself across a desk is a data-collection problem before it is a safety problem.

Without hardware

Nothing to buy, and the lesson is unchanged: reading a bill of materials as a set of decisions is the skill, not owning the parts.

  • Instead of ordering, open the SO-101 model file from Module 2 and go down this lesson’s parts table asking what the model asserts about each line.
  • Measure this: count the rows in the bill of materials that have no counterpart in the MJCF at all. Gear ratio appears; backlash, print quality, bearing preload and cable strain do not.
  • That count is the mechanical half of the reality gap, itemised. Keep the list; it is the set of things your simulated results will be silent about.

Check yourself

1. A friend hands you a bag of twelve STS3215 motors, unlabelled and mixed together. What exactly have you lost?

The gear-ratio split. Seven are 345:1, two are 191:1, three are 147:1, and nothing on the outside says which is which. The follower needs six of the 345:1 motors and the leader needs the mixed set, so a wrong assignment builds an arm that assembles, powers up, moves, and feels wrong at one joint. Recovering the split means testing motors individually rather than looking at them, which is why labelling bags before opening them is worth doing.

2. Why would a design give the leader arm lower gear reductions than the follower?

Because the two arms want opposite things from the gearbox. The follower holds itself up and carries a load, so it wants torque, and a high reduction buys torque. The leader is moved by your hand, so it wants backdrivability, and a high reduction destroys backdrivability by adding friction and multiplying the motor’s own inertia by the square of the ratio. Lower reductions on the leader make it lighter and less notchy to move, which is the whole job of that arm. Note that the parts list states the ratios without giving this reason; it is the reading that fits the mechanism.

3. The parts list totals $229.88 and your real spend lands nearer $350. Where did the difference go?

Into everything that is not a part: filament or a print service for two arms’ worth of skeleton, two webcams, a camera mount, and usually a spare motor. None of these appear in the bill of materials, and two of them, the cameras and the light you put them under, affect a trained policy’s success rate more than any motor you could buy.

4. You find a detailed assembly video that builds an arm from the SO-ARM100 repository. What is the first thing to check?

Which arm it builds. The repository is named after the SO-100 and still hosts its documentation, but the SO-100 is deprecated and the SO-101 is the current arm; they differ in wiring, in leader gear ratios, and in whether assembly includes a gear-removal step. A guide written for the older arm will look almost right the whole way through, which is worse than looking wrong.

5. Of everything in the parts list, why single out the power supply as the dangerous line?

Because it is the only line where a mismatch damages the parts rather than the schedule. Every other mistake in this lesson costs money or an afternoon: the wrong motor in the wrong joint can be swapped, a badly printed bracket can be reprinted. A 12 V supply on the 5 V / 7.4 V build puts motors into an error state and risks them outright, and the mistake is easy to make because barrel jacks fit each other happily. Note the thing that makes it easy to get wrong in the other direction too: the correct supply for the “7.4 V” motors is a 5 V one, so the labels are supposed to disagree, and the check is which variant you bought rather than which numbers match.

Do this

Twenty minutes with a spreadsheet or a terminal, before you spend anything.

1. Price your route. Run the cost model:

cd module-04-hardware/code
python bom_cost.py                 # both arms, self-sourced
python bom_cost.py --follower-only
python bom_cost.py --with-extras   # adds filament, cameras and a spare motor

It encodes the published unit prices and asserts that its own totals reproduce the two published figures, so a failed assertion means the prices in the file have drifted from the source and need re-checking.

2. Choose a route and write down why. One sentence each on cash, calendar time and how much of the arm you want to understand. Printing and self-sourcing is cheapest and slowest and teaches the most. An assembled arm is the opposite. A printed-parts kit sits in the middle and is the usual right answer for someone who does not already own a printer.

3. Open the vendor list yourself. Kit prices in any written guide, including this one, are stale. Price your own region today.

4. Write your inventory plan before anything arrives. Two lines: which arm is the follower and which is the leader, and the exact label you will write on each motor bag. You will reuse both in the next two lessons.

5. When the parts land, count before you build. Check quantities against the list above, open one motor type at a time, label as you go, and confirm the supply is the one your motor variant calls for: 5 V for the standard 7.4 V-rated build, 12 V 5 A+ only if you bought 12 V motors on purpose. Photograph the labelled bags. That photo is the only record of the split once the arm is together.

What you can now do

You can read the SO-101 bill of materials as a set of decisions rather than a shopping list: which reductions go in which arm and why, which line items are missing from every version of the list, and which single line can destroy hardware if you get it wrong. You can choose between printing, a parts kit and an assembled arm with your own reasons, price the route you chose from published unit prices, and take delivery of twelve identical-looking motors without losing track of the three machines hiding inside them.

What you can now do

You can choose between printing, a parts kit and an assembled arm, read the SO-101 bill of materials as a set of design decisions, and take delivery of twelve identical-looking motors without mixing up three different gear ratios.