Pair via QR Code

Use QR codes for secure, quick pairing when devices can't discover each other via LAN.

Pro Tip

QR pairing is the most secure method because it uses physical proximity for key exchange. If you're setting up robots in a security-sensitive environment, always prefer QR pairing over LAN discovery.


When to use QR pairing


Prerequisites


Step 1: Generate QR code on agent

On the Agent:

  1. Open ☰ Menu → Pairing
  2. Tap Show QR Code

The Agent displays its pairing QR code:

Pairing QR Code

The QR code contains:


Step 2: Scan QR code on remote

On the Remote:

  1. Open ☰ Menu → Pairing
  2. Tap Scan QR Code
  3. Point camera at the Agent's QR code

Scan QR Code


Step 3: Verify and connect

Once scanned, the Remote shows the Agent's identity:

Verify Agent

Important: Verify the identicon and fingerprint match what the Agent shows.


Step 4: Complete pairing

  1. Tap [Connect] on the Remote
  2. The Agent receives the pairing request
  3. Accept on the Agent (or it auto-accepts if configured)
  4. Set trust level on the Agent

Both devices now show connected status.


Security benefits

QR pairing provides additional security:

Feature Benefit
Out-of-band exchange Key exchange is physical, not network
Visual verification Identicons can be compared side-by-side
Time-limited tokens QR codes expire after 5 minutes
No broadcast Doesn't expose presence on network

QR code contents

The QR code is a JSON payload (base64-encoded):

{
  "v": 1,
  "type": "pairing",
  "id": "a1b2c3d4...",
  "pk": "MIIBIjANBgkq...",
  "addrs": ["192.168.1.105:8124"],
  "token": "xyz789...",
  "exp": 1705312800
}
Field Description
v Protocol version
type Payload type
id Node ID (public key hash)
pk Public key
addrs Network addresses
token One-time pairing token
exp Expiration timestamp

Troubleshooting

Camera not working

Check permissions:

Try alternative:

QR code expired

The QR code is valid for 5 minutes. If expired:

  1. Tap [Cancel] on the Agent
  2. Generate a new QR code
  3. Scan again

Scan not detecting

Connection fails after scan

The scan works but connection fails: