Requirements
- Python 3.12 or 3.13;
- an SO-101 follower arm supported by LeRobot 0.5.1;
- one side RGB camera and one distinct wrist RGB camera;
- a terminal attached to a TTY for the keyboard e-stop;
- a Dropbear account with available credits.
1. Install and authenticate
dropbear login initializes motion as disabled on a new machine.
2. Prepare the workspace
Before connecting:- Secure the arm base and both cameras.
- Route the wrist-camera cable so no joint can pull or trap it.
- Remove tools and unused props from the swept volume.
- Test the robot’s physical power stop.
- Place the terminal where
Space,q, orCtrl-Cis immediately reachable.
Side camera
Mount the side camera 60–80 cm from the table, approximately side-on to the arm, with the whole workspace and arm visible. Keep exposure, white balance, and the mount stable during a run.SO-101 side-camera placement reference
Wrist camera
Use a second physical camera mounted on the arm. Keep the gripper and immediate workspace visible, secure the cable through the full joint range, and verify that it is not the same device index as the side camera.3. Detect the arm and cameras
- verifies your API key;
- detects or confirms the serial port;
- previews and saves the side camera;
- previews and saves a distinct wrist camera;
- starts warming the SO-101 policy worker while you finish setup.
~/.dropbear/config.toml. If setup starts a cloud
session and you stop here, close it with:
4. Calibrate
Clear the table, then run the guided LeRobot calibration:~/.dropbear/calibration/so101.json.
Do not continue if the calibration exits early or the saved joint ranges look
wrong. Re-run calibration with the workspace clear.
5. Pass hardware diagnostics
- Python and LeRobot versions;
- the configured serial port;
- calibration presence and format;
- distinct side and wrist camera capture;
- side-camera framing against the reference;
- the current network path when a warmed session is available.
6. Run without motion
Stage a red block and target square, keep the workspace clear, and run:would move lines for:
- six finite values in the documented joint order;
- plausible targets near the current pose;
- stable camera framing;
- no unexpected discontinuities.
Space, q, or Ctrl-C to test the software e-stop during the dry run.
Do not approve motion if the stop path, cameras, calibration, or targets are
wrong.
7. Confirm one live run
After a successful dry run, the same command asks:y, confirm again that:
- the physical stop works and is reachable;
- one operator is watching the entire workspace;
- no person or object is inside the swept volume;
- calibration and diagnostics passed in this setup;
- the dry-run targets were plausible.
y only when all checks pass. Dropbear then persists motion enablement
and continues on the same warmed session. The turnkey loop clamps each
per-tick joint change, checks the keyboard e-stop every tick, and freezes stale
actions after a disconnect.
Stop and recover
- Press
Space,q, orCtrl-Cfor the software e-stop. - Use the physical power stop for unexpected motion or any loss of confidence.
- After a disconnect or timeout, leave the arm stopped, inspect
dropbear sessions list, and rundropbear doctor so101before retrying. - If UDP is unavailable, the default command may use the hosted relay and will
report reduced responsiveness. Use
--no-fallbackwhen the run must refuse that path. - If a session remains open, terminate it with
dropbear sessions stop <session-id>.