SO-100 troubleshooting
Find the line that matches what you are actually seeing, then read the cause and the fix. Every page starts with the symptom, not with theory.
- 12 symptoms covered
- 5 areas
- SO-100, SO-101, Koch v1.1, LeKiwi
Hardware
Servos, power supply, wiring and the arm itself.
- Why does the scan find only some of my servos?
The serial port is found and the arm answers, but the scan reports fewer servos than the arm has. Four of six, or five of six, and the same IDs are missing on every rescan.
- Why does my arm twitch and then go limp mid-motion?
The arm starts a motion, jerks once, and drops. Sometimes several joints give way at the same instant. It happens under load and almost never while the arm is idle, and no error appears that you can act on.
- Why does one joint stop before it reaches the commanded angle?
One joint travels to a certain angle and refuses to go further. Nothing is touching it, it moves freely by hand with the power off, and the other joints reach their full range without complaint.
- Why does everything move except the gripper?
Every joint responds and the arm moves normally, but the gripper does not open or close. It may also be loose enough to push by hand while the other five joints hold their positions.
Connection
The desktop client, the serial port and pairing with the browser.
- Why is my robot arm not detected as a serial port?
The client shows an empty device list. There is no COM port on Windows, no /dev/cu.usb entry on macOS, nothing on /dev/ttyUSB0 or /dev/ttyACM0 on Linux, and ay-robots devices prints no serial port at all.
- Why is my USB camera not detected, or dropping out mid-recording?
A camera that works on its own disappears as soon as a second one is plugged in, or it appears in the list and delivers black frames, or it was camera 1 yesterday and camera 0 today.
Dataset
Recording, episodes, cameras and the format the trainer accepts.
Training
The cloud run: crashes, loss curves, checkpoints and cost.
- The loss went down and the policy still does nothing
Training finished, the loss curve fell smoothly and flattened out, and the policy fails every attempt on the arm. Nothing in the run page looks wrong.
- The training run dies with an out of memory error
The job reaches RUNNING and then fails with a CUDA out of memory message, either in the first seconds or after thousands of steps.
- The training job is stuck in QUEUED and never starts
The training job shows QUEUED in the dashboard, sometimes for a long stretch. There are no logs, no loss values, and no error message.
Deployment
Running a trained checkpoint back on the arm.
- The arm starts, then stops partway through the task
The policy starts confidently, gets partway into the task, and then the arm stops moving. Sometimes it holds position, sometimes it sags.
- It worked yesterday and fails today
The same checkpoint that worked reliably in one session fails in the next, without anything being retrained in between.
Nothing is broken, you are new
These pages assume you already tried something and it did not work. If you are setting the arm up for the first time, the tutorials are the shorter path: they run from an unpacked kit to a policy driving the arm, in the order the steps actually happen.
Four tutorials in sequence: assemble and calibrate, record a dataset, train a policy, run it back on the arm.
Wiring, the 7.4 V supply the STS3215 servos need, and the first calibration run.
Looking for the model parameters rather than a fault? Those live under /policies and /train.
Check whether the problem is your arm at all
A real SO-100 is online and free to drive from the browser. If the same motion works there, the fault is in your hardware or your wiring, not in the software.