1Order
- 1Order
Order the six servos first
Feetech STS3215, 7.4 V, 1/345 gear (C001), $83.34 for six. All six must match; a wrong gear ratio makes a joint weak. They're the slowest to arrive and every arm step waits on them, so pick a seller that ships domestically. Overseas shipping pushes arm work back up to two weeks.
- 2Order
Order everything else
Item Qty Cost Waveshare Bus Servo AdapterMotor control board 1 $10.60 Power supply5 V, 4 A or more, 5.5 × 2.1 mm barrel plug 1 $10 USB-C data cablesLong enough to reach the laptop 2-pack $7 Table clampsHold the arm's base to the table 2 $5 Screwdriver setMust include Phillips #0 and #1 1 $6 USB webcamThe model the printed overhead mount fits 1 ~$30 LED desk lampSteady, even light 1 ~$20 PLA+ filamentArm, camera mount, fingertips, tray 1 kg ~$20 M2 and M3 screw assortmentSpares for the ones you'll lose 1 box ~$10 Silicone grip padsStop the candy shell slipping 1 pack ~$8 Plain M&M'sA bag just for the robot 1 large ~$5 White matte boardPlain background under the camera 1 ~$5 With the servos $219.94 Arm parts follow the official SO-101 parts list. Other prices are estimates. Any short, wide kitchen cup works as the target cup.
2While parts ship
- 3Build
Print the arm on the P2S
Lego test gauge, then
Ender_Follower_SO101.stlat 0.2 mm layers, 15% infill and tree supports, then the 3 webcam-mount parts. Block supports in the screw holes in Bambu Studio or the screws won't go in. The arm plate prints overnight. Files and settings are in the SO-101 repo. - 4Build
Install Python and LeRobot
In a fresh environment used only for LeRobot:
pip install 'lerobot[feetech]'. Mixed packages cause most install errors. Follow the install guide. - 5Build
Start the GitHub repo and a build log
Log every session: what you did, what broke, the fix. It becomes the README.
- 6Learn
Learn Python, 30 minutes a day until the demo
Automate the Boring Stuff with Python. Write all the project code yourself, because the job tests Python written without AI help.
- 7Learn
Watch the SO-101 assembly videos end to end
Watch them before the servos arrive, so assembly week is only doing. Official guide and videos, plus a builder's write-up for the gaps.
- 8Build
Set up the camera scene
White board on the table, lamp fixed in place, webcam on its printed mount pointing straight down. Shifting light breaks color detection.
- 9Build
Find candies by color, no ML
An OpenCV script that finds M&M's with color thresholds. It's your baseline, and it shows how a camera sees color.
3Arm and detector
- 10Build
Give each motor its ID, before assembly
Run
lerobot-find-portand set both Waveshare jumpers to B (USB). Then, one motor at a time:lerobot-setup-motors --robot.type=so101_follower --robot.port=<port>. The gripper is ID 6 and the base is ID 1; tape-label each. If it fails, check the cable, the power and the jumpers, then retry that motor. - 11Build
Assemble the arm
Clean the supports off first. Build joints 1 to 5, then the gripper, following the official videos. M2 × 6 mm screws go into motors, M3 × 6 mm hold parts and horns.
- 12Build
Wire it, clamp it, get it checked
Daisy-chain the 3-pin cables, plug motor 1 into the board, mount the board on the base and clamp the arm to the table. Power off whenever you plug a motor cable, and use the 5 V supply only; 12 V destroys these servos. Have Connor check the wiring before the first power-on.
- 13Learn
Learn how calibration works
- 14Build
Calibrate
lerobot-calibrate --robot.type=so101_follower --robot.port=<port> --robot.id=sorter_arm. Set each joint to mid-range, then move it through its full range. A rushed calibration is why picks miss later. - 15Build
Write your first script
Connect, print all six joint positions, move one joint slowly. Add slow speeds, joint limits and a stop before anything else.
- 16Build
Teach a pose by hand
Torque off, move the arm, record the joint positions, torque on, replay. Film it for the progress video.
- 17Learn
Learn how image detectors work
3Blue1Brown: Neural Networks, chapters 1 and 2, then “YOLO algorithm for object detection explained”.
- 18Build
Photograph and label the candies
100 to 150 webcam photos: candies scattered, touching, overlapping, in slightly different light. Box and color-label every candy in Roboflow.
- 19Build
Train YOLO and run it live
Train in Google Colab and run it on the live webcam. Use Roboflow's YOLOv8 tutorial and the Ultralytics docs.
- 20Ship
Dec 13: send a progress video and apply
Show the hand-taught replay and live detection. If the posting disappears sooner, apply that day with whatever works.
4Gripper and picking
- 21Build
Compare three ways to count candy
Color thresholds, YOLO, and a VLM asked “how many of each color?”, all on the same photos. Write down where each one fails: touching candies, shadows, brown vs. orange. It's a strong interview story.
- 22Learn
Learn camera-to-robot coordinates
Automatic Addison: convert camera pixels to robot coordinates.
- 23Build
Calibrate pixels to the table
Tape a printed grid under the camera and work out pixels per centimeter. Lock the camera mount; if it moves, recalibrate.
- 24Learn
Learn Fusion 360 basics
Autodesk's free beginner tutorials. Model a simple bracket before the fingertip.
- 25Build
Design the fingertips
An M&M is about 1.3 cm across. Modify the stock SO-101 jaw to cup it, and add grip pads. Expect three versions. Flat tips and fast approaches make candy roll away.
- 26Build
Print a six-bin sorting tray
One bin per color, with a fixed spot on the table.
- 27Build
Pick from fixed spots (version 1)
Teach a few spots by hand. The camera reads each candy's color and the arm drops it in the right bin.
- 28Build
Pick from anywhere (version 2)
Convert camera position to table position to joint angles (inverse kinematics). Show a live count by color and stop when the board is clear. If the holidays eat the time, demo version 1.
5Talk to it
- 29Learn
Learn how language and vision models work
Hugging Face: Vision Language Models Explained. The Claude API docs: getting started, sending images, fixed-format answers. Anthropic's prompt engineering guide.
- 30Order
Buy about $5 of API credit
For the Claude API. A few dollars covers the whole project.
- 31Build
Define the commands and the plan format
Commands: “sort everything,” “put the red ones in the cup,” “put three blue ones in the cup,” “how many green ones are left?” Plan: action (move or count), color, count, destination (cup or bin).
- 32Build
Turn commands into plans
Send each command to the model with instructions to answer only in that format. Print every plan before anything moves.
- 33Build
Check every plan before the arm moves
Refuse unknown colors or destinations, or more candies than the camera sees, and say why. The model never drives the motors directly. Test with “put the purple ones in the cup” and “put 50 in the cup.”
- 34Build
Connect plans to the arm
Approved plans run the version 2 pick code. Answer “how many green ones are left?” from the detector's count, then compare a VLM's answer.
6Ship
- 35Ship
Write the README
What it does, how it works, the wiring diagram, what failed and how you fixed it. Build it from the log.
- 36Ship
Record the 60–90 second demo
Typed commands visible on screen: detection boxes, “put three blue ones in the cup,” “sort the rest” with the running count, “how many green ones are left?”
- 37Ship
Run it for Dad like a customer job
He types the commands. Then write one page on how the same cell could pull hardware kits at Forest Iron Works.
- 38Ship
Do a mock interview, then send it
Connor runs a mock technical interview against the job posting. Then send the video to your Standard Bots contacts and add it to the application.