Skip to guide content

RoboBuddy Documentation

GitHub Pages to SO-101

Control LeRobot SO-101 from RoboBuddy on GitHub Pages

RoboBuddy on GitHub Pages runs in your browser. It cannot access your SO-101 hardware by itself. To control the robot, run the RoboBuddy local bridge on the same computer that has the SO-101 connected, then connect to that bridge from the GitHub Pages app.

What You Need

  • A desktop or laptop computer with the SO-101 connected by USB.
  • Chrome or Edge.
  • Python 3.12.
  • A calibrated LeRobot SO-101 follower.
  • RoboBuddy open from GitHub Pages.

Install the Local Bridge

Download or clone the RoboBuddy repository, then open PowerShell in the repository folder.

py -3.12 -m venv .venv-so101
.\.venv-so101\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -e ".\bridge[so101]"

Prepare the SO-101

Find the robot port:

lerobot-find-port

If the motors have not been configured, run setup once with your port:

lerobot-setup-motors --robot.type=so101_follower --robot.port=COM24

Calibrate the robot before browser control:

lerobot-calibrate --robot.type=so101_follower --robot.port=COM24 --robot.id=classroom_so101_01

Replace COM24 with the port shown on your machine.

Start the Bridge

In PowerShell:

.\.venv-so101\Scripts\Activate.ps1
python -m robobuddy_bridge

Leave this PowerShell window open. The bridge listens on:

http://127.0.0.1:8765

The bridge prints a local token when it starts. Keep it nearby. You will enter it in RoboBuddy.

Bridge Token

The bridge token is a local safety token for your computer. It is not an OpenAI key, GitHub token, password, or cloud secret.

  • If you start the bridge with python -m robobuddy_bridge, the token is printed in that PowerShell window.
  • If you start the bridge with .\tools\start-so101-bridge.ps1 -Restart, the helper prints the token after the bridge reports ready.
  • If you restart the bridge, the token can change. Click Test Bridge again and enter the current token.
  • If a bridge is already running and you did not save its token, close it or restart it so a new token is printed.
  • Use --no-token or -NoToken only for local development, not for normal robot control from GitHub Pages.
  • If you intentionally started the bridge without a token, check No-token local in the Diagnostics panel instead of entering a token.
  • If No-token local is checked but the running bridge is still token-protected, RoboBuddy keeps the checkbox checked and blocks Connect. Restart the bridge with --no-token or -NoToken, then click Test Bridge, or uncheck No-token local and enter the printed token.

Connect from GitHub Pages

  1. Open RoboBuddy on GitHub Pages in Chrome or Edge.
  2. Select LeRobot SO-101 F.
  3. In the Local Bridge panel, click Test Bridge.
  4. If the browser asks for local network access, allow it.
  5. Enter the bridge token if RoboBuddy asks for it. If you intentionally started the bridge with --no-token or -NoToken, check No-token local instead.
  6. Select the SO-101 port.
  7. Click Connect SO-101.
  8. If RoboBuddy reports NEEDS_CALIBRATION, run the calibration command shown, then test/connect again.
  9. Check Arm motion for this session only when the robot is clear to move.
  10. Use the sliders or programs to control the robot.

Safety Notes

  • Keep the robot on a stable surface with a clear workspace.
  • Do not arm motion until calibration has passed.
  • Use STOP immediately if movement is unexpected.
  • Do not enter cloud API keys or passwords as the bridge token.
  • Close the PowerShell bridge window when finished.

Troubleshooting

  • Bridge unavailable: start the bridge and confirm it is listening on 127.0.0.1:8765.
  • Browser blocks the request: allow local network access or apps-on-device access for the RoboBuddy page, then click Test Bridge again.
  • Bridge token required: enter the token printed by the currently running bridge. If No-token local is checked, the bridge was not actually started in no-token mode; restart it with --no-token or -NoToken, then click Test Bridge.
  • Port list unavailable: install the bridge extras and reconnect the robot USB cable.
  • SO-101 port is busy: close other serial tools, restart the bridge, or replug the robot.
  • LEROBOT_NOT_INSTALLED: install with python -m pip install -e ".\bridge[so101]".
  • NEEDS_CALIBRATION: run the displayed lerobot-calibrate command before trying motion again.