Unitree Explore App¶
Overview¶
The Unitree Explore app is used to control the G1, switch modes, view video, and perform firmware updates.
- Platform: iOS/iPadOS only (no Mac version; TestFlight beta is iOS-only)
- Bluetooth: Connects via BLE to the locomotion computer's integrated Bluetooth 5.2 (Rockchip RK3588, not the Jetson's)
- Wi-Fi: Connects to the locomotion computer's integrated WiFi 6 AP (wlan1, SSID "UnitreeG1", 192.168.12.0/24)
- Control protocol: WebRTC via
webrtc_bridgemodule on the locomotion computer. BLE is used for initial pairing and WiFi provisioning, then all ongoing control/video uses WiFi + WebRTC.
Connection Modes¶
The app supports three connection modes. The mode is selected during initial binding via the Unitree Explore app.
AP Mode — Direct Connection (default, working)¶
The RK3588 locomotion computer broadcasts a Wi-Fi hotspot on wlan1:
- SSID: Configurable during initial binding (likely defaults to "UnitreeG1" or "G1-XXXXXX")
- Subnet: 192.168.12.0/24, gateway 192.168.12.1
- No router or internet required
iPad/phone connects directly to this hotspot. The app communicates with the locomotion computer at 192.168.12.1 via WebRTC. This is the default out-of-box experience.
WiFi/STA Mode — Shared Network (provisioning broken)¶
In this mode, the app uses Bluetooth to send WiFi credentials (SSID + password) to the RK3588, which then joins that external WiFi network as a client on wlan0 (STA mode). The iPad also connects to the same WiFi network, and they communicate over the shared LAN.
The app discovers the robot via multicast using the robot's serial number (not mDNS). This mode may also require Unitree cloud registration — some Go2 users report WiFi mode gets stuck at "register to cloud."
Currently broken on our G1 — the Bluetooth provisioning flow fails, showing "Internet Disconnected" in Machine Inspection. Unknown whether this is a firmware bug or a cloud registration issue.
STA Sub-modes¶
The WebRTC connection protocol supports two STA variants:
- STA-L (Local): Robot and iPad on the same LAN. Discovery via multicast by serial number or direct IP.
- STA-T (Tunnel): Remote connection through Unitree's TURN server using cloud account credentials.
WG827 Router Workaround (untested)¶
Since the RK3588 is already on 192.168.123.0/24 via its wired eth0, connecting the iPad to the WG827 router's WiFi (same subnet) should allow the app to reach the robot in STA-L mode — bypassing both the broken WiFi provisioning and the slow Jetson hotspot. Full Gigabit wired backhaul to the RK3588.
Jetson WiFi Hotspot Workaround (working, slow)¶
We set up a hostapd AP on the Jetson ("UnitreeG1-Dev") bridged to 192.168.123.0/24. The iPad connects to this and can reach the locomotion computer at .161 on the same subnet. Basic control (walking, mode switching) works, but bandwidth is too low for video — the Jetson's Realtek WiFi is 2.4GHz 802.11n only. See Networking for setup.
Bluetooth (pairing only)¶
BLE connects to the RK3588's integrated Bluetooth 5.2. The robot doesn't advertise constantly — tap "Add Robot" in the app to trigger pairing mode. Bluetooth is used for initial device binding and WiFi provisioning, not for ongoing control. All ongoing control/video uses WiFi + WebRTC.
Service Status¶
From the app's "Automatic Machine Inspection" and "Service Status" screens:
Functional Services¶
bashrunner, basic_service, battery_guard, log_system, master_service, net_switcher, robot_state, robot_type_service, state_estimator, unitree_slam, vui_service
Abnormal Services¶
| Service | Notes |
|---|---|
| ai_sport / 8.4.2.222 | Main locomotion controller |
| motion_switcher / 1.0.0.1 | Mode switching |
| webrtc_bridge / 1.0.8.4 | Video streaming |
| webrtc_signal_server | Video streaming |
| webrtc_multicast_responder | Video streaming |
| ros_bridge / 1.0.0.4 | ROS communication (may need Jetson) |
| lidar_driver / 1.0.0.5 | Livox Mid-360 lidar |
| dex3_service_l / dex3_service_r | Dexterous hand services (may not be installed) |
| audio_player_service | Audio |
| chat_go / 1.9.1.62 | Voice/chat |
| g1_arm_example / 2.0.0.11 | Arm demo |
Video feed broken
All three WebRTC services (bridge, signal_server, multicast_responder) are abnormal. This is why video streaming does not work, regardless of Wi-Fi speed.
App Features¶
| Feature | Status |
|---|---|
| Bluetooth pairing | Working |
| Mode switching (damping, free motor) | Previously working via Jetson hotspot, untested via built-in AP |
| Joystick control | Previously working via Jetson hotspot, untested via built-in AP |
| Video feed | Not working (WebRTC services abnormal) |
| Firmware updates (OTA) | Needs internet on robot |
| Machine Inspection | Working (shows network, USB, Bluetooth status) |
| Service Status | Working (shows all service health) |
| Wi-Fi provisioning | Broken (fails to configure wlan0 client connection) |