How to Set Up the Unitree B2 at Home: Step-by-Step Guide (2026)

How to Set Up the Unitree B2 at Home: Step-by-Step Guide (2026)

Complete home setup walkthrough for the heavy‑duty Unitree B2 quadruped: from unboxing and charging to firmware, SDK, and first movement. Includes UniPwn security hardening.

15 min readUpdated Jul 2026
Liu Wei
Liu Wei

Setting up the Unitree B2 in a suitable home workshop or warehouse takes about 2 hours and four phases: unbox and inspect the 60 kg quadruped, install and charge its high-capacity battery, connect over Ethernet (set your PC to 192.168.123.99 on the 192.168.123.x/24 subnet), then update to the latest firmware and run a calibration walk. You need at least 5 m × 5 m of flat, non‑slip floor and the emergency‑stop remote within arm’s reach before first power‑on.

What You’ll Need: Tools, Space & Time

Tools & Supplies - Unitree B2 robot (includes remote control, charger, quick‑release battery) - Suspension stand or heavy‑duty rig rated for 60 kg – the robot must hang for sensor calibration - Ethernet cable + laptop with a free RJ45 port and Ubuntu 20.04 (or virtual machine) for network configuration / SDK - Anti‑fatigue rubber mat (6 mm min.) to protect floors and give consistent footing - Safety mirror or a second person as spotter - Heavy‑duty extension cord for the 58.8 V / 10 A charger - Mobile device (Android/iOS) with the Unitree RoboGo app installed

Room & Surface - Minimum clear floor space: 5 m × 5 m (25 m²) – the B2 can reach 21.6 km/h, so give it room - Floor must be flat, level, and non‑slip; concrete, sealed concrete, or commercial vinyl are ideal - The robot is rated IP67, but standing water should still be avoided during initial setup

Time Estimates

PhaseFirst‑timerExperienced
Unboxing & inspection20 min10 min
Battery install + charge5 min (install) + 2 h charge5 min + 2 h
Network & app binding30 min15 min
Firmware update & hardening25 min15 min
Calibration & first walk20 min10 min
Total (excluding charge)~2 h 10 min~1 h 20 min

The battery can be hot‑swapped; a full charge lasts about 5 hours of active walking.

Before You Start: Safety & Space Requirements

This robot is heavy (60 kg) and fast (21.6 km/h). It can cause serious injury if handled incorrectly.

  • Exclusion zone: mark a 2 m‑wide perimeter around the operating area; no people or pets inside during powered movement.
  • Emergency stop: keep the remote control in hand, thumb on the e‑stop button. The robot also shuts down if the battery quick‑release is pulled.
  • Suspension rig: until the firmware is updated and the robot’s gait is tuned, the B2 must be suspended from its center lift point. Do NOT attempt first stand without a rig rated for at least 100 kg.
  • Floor condition: cracks, loose tiles, or thick carpet can cause the robot to trip. Shine‑free, consistent traction is a must.
  • Wi‑Fi vs. Ethernet: for safety‑critical first steps, connect via Ethernet; the 5 GHz Wi‑Fi dongle is convenient later but can introduce control latency.

The Unitree B2 is enterprise‑grade (IP67). It can operate outdoors in rain, but initial setup should be indoors in a dry, temperature‑controlled space (5 °C – 35 °C).

Step 1 — Unboxing & Physical Inspection

The B2 arrives in a reinforced wooden crate. Gather a second person or a pallet jack — the robot itself is 60 kg, and the crate is larger.

  1. Remove the crate lid and cut the nylon straps securing the robot.
  2. Inspect for transit damage — check all 12 leg joints, the body shell, and the sensor head (front Intel RealSense D435i camera + 3D LiDAR).
  3. Check the accessory box — remote control, charger, battery (may be pre‑installed), Ethernet dongle, Wi‑Fi dongle, quick‑start booklet.
  4. Lift the robot using the center T‑handle; use a hoist if needed. Place it on a soft mat.
  5. Do NOT power on yet — the battery must be confirmed seated and partially charged.

Take a photo of the serial number plate on the underside; you will need it for the Unitree support portal and warranty registration.

Step 2 — Battery Installation & Charging

The B2 uses a 58.8 V, 30 Ah lithium‑ion pack with a quick‑release mechanism.

  1. Slide the battery into the rear bay; push firmly until the latch clicks audibly.
  2. Connect the charger to the robot’s charge port (right side, under a rubber flap) before plugging into mains.
  3. The charger LED glows red while charging, green when complete. A full charge takes about 2 hours.
  4. While charging, do not power on the robot — the BMS performs cell balancing only in standby.

> Important: The charger is rated at 10 A. Use a dedicated 15 A circuit (North America) or 230 V/10 A (Europe) to avoid tripping breakers.

Step 3 — Powering On & First Boot

With the robot safely suspended and the battery charged above 50 %, proceed:

  1. Press the power button (rear, below the battery) for 3 seconds. The status LEDs on the body will cycle white → blue.
  2. Wait for the boot chime (two ascending tones) — about 45 seconds.
  3. The B2 enters standby mode by default; all joints are limp, and the robot will hang from the rig.
  4. Place the remote control next to the robot and press the pairing button on the remote — the LED will blink, and the robot’s main LED will flash green once paired.

Do not attempt to stand the robot yet. We will update the firmware and calibrate sensors first.

Step 4 — Network Configuration (WiFi vs Ethernet)

The onboard computer (a RockChip RK3588) runs on the 192.168.123.x/24 subnet by default, with the internal computer at 192.168.123.161. For a desktop/laptop, assign a static IP in the same range.

  1. Connect your PC to the robot:
  • Ethernet (recommended): plug the USB‑C‑to‑Ethernet dongle into the robot’s maintenance port (left side), and the other end into your PC. Or connect both to the same router.
  • Wi‑Fi: insert the supplied Wi‑Fi dongle; the robot creates an access point (SSID Unitree_B2_XXXX). Connect your PC to that AP, then SSH to 192.168.123.161.
  1. Set your PC’s static IP to 192.168.123.99 (any free IP except .161, .120 for LiDAR). On Ubuntu, use:
   sudo ifconfig eth0 192.168.123.99 netmask 255.255.255.0 up

or set via NetworkManager. 3. Test connectivity: ``bash ping 192.168.123.161 ``

The default SSH credentials are unitree / 123change them immediately (see Step 6).

Connection methodProsCons
EthernetLowest latency, no interferenceCable limits range, requires dongle
Wi‑Fi (dongle)Convenient, good for app controlPossible packet loss, less reliable for SDK
Wi‑Fi (infrastructure)Connects to home network, remote access possibleRequires manual configuration of wpa_supplicant

For advanced SDK use, Ethernet is strongly preferred.

Step 5 — App / Remote Control Binding

The Unitree RoboGo app (iOS/Android) lets you monitor battery, toggle gait modes, and adjust speed limits.

  1. Ensure your mobile device is on the same Wi‑Fi network as the robot’s AP or the Ethernet network via a router.
  2. In the app, tap “Add Device” → scan for UID on the robot’s startup screen or serial number label.
  3. A binding code will appear on the robot’s LED display; enter it in the app.
  4. After binding, the app shows real‑time joint angles, battery percentage, and IMU data.

The remote control will already be paired from Step 3. You can now move the robot manually with the right joystick (damping disabled first — see next step).

Step 6 — Firmware Update & Security Hardening

The Unitree B2 is affected by UniPwn (CVE‑2025‑35027), a wormable BLE command‑injection vulnerability that can give an attacker root access over the air. Later firmware releases (1.5.x and beyond) include per‑device AES keys. Update immediately and disable BLE provisioning when not in use.

Firmware update via PC

  1. Download the latest firmware package from the Unitree Support Portal (access requires serial registration).
  2. SCP the .tar.gz file to the robot:
   scp B2_firmware_*.tar.gz [email protected]:/tmp/
  1. SSH into the robot and run the updater:
   ssh [email protected]
   cd /tmp
   tar xzf B2_firmware_*.tar.gz
   sudo ./flash.sh
  1. The robot will reboot twice. After the second boot, verify the version:
   cat /etc/unitree/version

(The factory version may be 1.3.x; update to the latest release, which as of July 2026 is ≥1.5.x.)

UniPwn hardening steps

  • Disable BLE provisioning: in the RoboGo app, set “Bluetooth provisioning” to OFF after initial binding. To re‑enable, you must hold the power button for 10 seconds.
  • Change default SSH password:
  passwd unitree
  • Segment the network: if you connect the robot to your home LAN, place it on a separate VLAN with only the necessary ports allowed (SSH, DDS UDP unicast).
  • Keep the robot offline when not actively used for development; BLE advertising stops only when the robot is completely off.

These steps are non‑negotiable — an unpatched B2 can be rooted by anyone within BLE range.

Step 7 — SDK / ROS2 Setup (Advanced)

The B2 is fully supported by the unitree_sdk2 (C++/Python) and the unitree_ros2 metapackage.

Prerequisites - Your development PC runs Ubuntu 20.04 with ROS2 Foxy (the same OS running on the robot’s onboard computer). - CycloneDDS 0.10.2 built from branch releases/0.10.x and installed: ``bash git clone -b releases/0.10.x https://github.com/eclipse-cyclonedds/cyclonedds cd cyclonedds && mkdir build && cd build cmake .. -DCMAKE_INSTALL_PREFIX=/opt/cyclonedds sudo make install export CYCLONEDDS_HOME=/opt/cyclonedds ``

Install the SDK (C++ and Python) ``bash git clone https://github.com/unitreerobotics/unitree_sdk2 cd unitree_sdk2 mkdir build && cd build cmake .. -DCMAKE_INSTALL_PREFIX=/opt/unitree_robotics sudo make install ` For Python bindings: `bash cd unitree_sdk2_python pip3 install -e . ``

Install ROS2 wrapper ``bash mkdir -p ~/ros2_ws/src cd ~/ros2_ws/src git clone https://github.com/unitreerobotics/unitree_ros2 cd ~/ros2_ws colcon build --symlink-install ` The B2 uses the unitree_hg IDL (same as G1/H1). In your launch files, set the network interface to match your PC’s adapter connected to the robot (e.g., enp3s0`).

Verify SDK connectivity ``bash cd /opt/unitree_robotics/bin ./b2_example 192.168.123.161 # high‑level example `` If the robot is in debug mode (L2+R2 then L2+A on the remote), high‑level commands won’t work. Keep the AI sport client active.

Step 8 — Calibration & First Movement

  1. Ensure the robot is still suspended and all firmware updates are applied.
  2. Activate control mode on the remote:
  • Press L2 + B to release damping (joints go limp).
  • Press L2 + UP to enter ready state — the robot will stand up while hanging; the motors will torque.
  • Press R2 + A to give operation control to the remote joysticks.
  1. Perform sensor calibration from the RoboGo app: select “IMU calibration” and let the robot remain still for 30 seconds, then “joint calibration” (the robot will slowly move its legs through full range).
  2. Once calibration passes, slowly lower the robot until it touches the floor. Use a second person to watch.
  3. Experiment with the left stick (throttle/steer) at the slowest speed (app defaults to “trot, 0.5 m/s”). The B2 should walk smoothly.

After a few minutes of stable walking, you can remove the suspension rig. The 21.6 km/h top speed is for outdoor use only; keep the home speed ≤ 3 m/s with ample margin.

Defining Success: Minimum / Full / Advanced

TierDefinition
Minimum viableRobot powers on, connects to remote/app, stands and trots under manual control
Full operationalFirmware updated, hardening applied, Ethernet‑linked to PC, calibrated sensors, walks reliably in the designated area
AdvancedSDK/ROS2 installed, custom high‑ or low‑level commands work (e.g., inspection routine, payload transport), BLE provisioning disabled, network segmented

Common Setup Mistakes & Fixes

  1. Wrong subnet on PC

Symptom: Cannot ping 192.168.123.161. Fix: Set PC static IP to 192.168.123.99 and netmask 255.255.255.0.

  1. Wrong network interface in SDK config

Symptom: “Channel factory init error” or “DDS participant creation failed”. Fix: Verify your PC’s interface name with ifconfig; set it explicitly in the example’s ChannelFactory call.

  1. CycloneDDS version mismatch

Symptom: Messages not received despite correct IP; DDS logs show “incompatible QoS”. Fix: Build CycloneDDS from releases/0.10.x; set CYCLONEDDS_HOME and ensure libddsc.so is in LD_LIBRARY_PATH.

  1. Used old‑firmware button combos

Symptom: Pressing L1+A does nothing. Fix: On firmware ≥1.4.x, the damping combo is L2+B, ready is L2+UP, operate is R2+A.

  1. Forgot to disable BLE

Symptom: Robot shows up in Bluetooth scans even when idle. Fix: In the app, set “Bluetooth provisioning” to OFF. This prevents UniPwn attacks.

  1. Battery not fully seated

Symptom: No power LED, intermittent contact. Fix: Push until a loud click; inspect the connector for bent pins.

  1. First boot without suspension

Symptom: Robot collapses after stand. Fix: Always use a rig until calibration confirms all motors can bear weight.

  1. Default SSH credentials unchanged

Symptom: Immediate security risk. Fix: After first login: passwd unitree, set a strong password.

  1. High‑level SDK commands fail

Symptom: RPC calls return error. Fix: Ensure the robot is NOT in debug mode (L2+R2 then L2+A); high‑level client requires AI sport mode active.

  1. Floor surface too slippery

Symptom: Paws slip laterally, robot staggers. Fix: Lay an anti‑fatigue rubber mat (≥6 mm) across the operating area.

Frequently Asked Questions

About 2 hours for a first‑time setup: ~20 min unboxing, ~2 h charging, ~30 min network, ~25 min firmware/calibration. If you already have a charged battery, the active time is around 1 h 20 min.
At least 5 m × 5 m (25 m²) of clear, flat floor, plus a suspension point that can hold 60 kg. The robot stands 1,098 mm tall, weighs 60 kg, and has a 40 kg walking payload.
The onboard computer is at `192.168.123.161` on the `192.168.123.x/24` subnet. Set your PC to a free static IP, such as `192.168.123.99`.
As of July 1 2026, the latest stable firmware is the 1.5.x series. Update before first use — older firmware uses different button combos and has known security vulnerabilities.
With proper precautions, yes. Maintain a 2 m exclusion zone, always hold the e‑stop, and apply the UniPwn hardening steps (disable BLE provisioning, change default SSH password, segment your network). The robot is IP67 and can operate outdoors, but it is heavy and fast — training is essential.
`unitree_sdk2` (C++/Python) on Ubuntu 20.04, with ROS2 Foxy and CycloneDDS 0.10.2. Install the SDK from the official GitHub repositories.
Approximately 5 hours of active walking on a full charge. The 58.8 V, 30 Ah pack recharges in about 2 hours.
Ethernet is strongly recommended for SDK development and firmware updates. Wi‑Fi via the factory dongle is fine for app remote control, but it can introduce latency for real‑time control.

Comments

🍪 Cookie preferences

We use cookies to measure performance. Privacy Policy