adb reverse tunnel, so the link is wired and deterministic — while keeping Wi-Fi as an automatic standby if the cable drops.
USB carries controller poses only. Camera video still streams over the LAN — WebRTC can’t cross the
adb TCP forward — so you connect to the robot’s address as usual and the cameras keep working over Wi-Fi/Ethernet. USB just takes over the pose link.One-time setup
1
Enable Developer Mode on the Quest
- Open the Meta Quest mobile app on your phone, with your headset connected.
- Go to Menu → Devices → select your headset → Headset Settings → Developer Mode, and toggle it on (you may be prompted to create a free Meta “organization” first).
- Restart the headset.
2
Confirm adb is installed on the robot machine
Nothing to do after a one-command install —
axol provision sets up adb and the Quest udev rule for you. On a development install, run axol provision once.Connect and drive
1
Plug the headset into the robot machine
Use a data-capable USB-C cable from the headset to the machine running
axol serve (the one wired to the robot).2
Authorize and connect from the control panel
In the control panel, the Quest tab under General settings shows the headset state. The first time, accept the Allow USB debugging? prompt in the headset (check Always allow from this computer). Once authorized, the tunnels come up automatically and the status turns green (Controller over USB); the tab’s Connect button is a manual fallback / reconnect.
3
Confirm the tunnel on localhost
In the headset browser, open
https://localhost:8001 — the control panel, reached over the cable — and proceed past the certificate warning. If the panel loads, the tunnel is up. This works while nothing else is running, and it also lets you drive the panel from the headset.Do this before anything else. The browser’s override is per-origin (scheme + host + port), so accepting
:8001 does not cover :8000 — the USB pose link gets its own approval in a later step. Reaching the panel on localhost is what proves the cable path works, and it is the origin that is always available.4
Enable USB in the VR app
Open the VR app at axol.almond.bot, enter the robot’s address as usual, and tick Quest over USB. The USB panel and its Authorize USB certificate button appear immediately, before you connect.
5
Authorize the USB certificate
The USB link uses
wss://localhost:8000. It serves the same certificate you just saw on :8001, but the browser’s approval is per-origin, so this port needs its own. Until it’s approved the app runs on Wi-Fi and shows WiFi fallback — USB link down. Tap Authorize USB certificate and proceed past the warning (equivalently, open https://localhost:8000 in the headset browser). The status then flips to controller over cable.6
Enter VR
Press Enter VR and teleoperate as usual. You don’t have to wait for the USB link — Wi-Fi drives the arm until the cable comes up, then the robot switches to the wired stream automatically.
Next steps
Web Control Panel
Where the Quest settings tab lives and how connections work.
VR Interface
The WebXR app, camera views, and connection details.
Quest Without Wearing It
Keep the headset awake headless — the same cable also disables the proximity sensor.
