> ## Documentation Index
> Fetch the complete documentation index at: https://docs.innate.bot/llms.txt
> Use this file to discover all available pages before exploring further.

# Control & Connectivity

This page covers controlling MARS with the app and leader arm, getting connected for the first time, and SSH access.

## Control via app, web, and leader arm

MARS is controllable from the [phone app](/robots/innate-controller-app) and the [web app](/robots/web-app) — both with live video, driving, and leader-arm teleoperation. Pick your surface below.

<Tabs>
  <Tab title="Phone app">
    <CardGroup cols={2}>
      <Card title="Android APK (1.3.0)" icon="android" href="https://cdn.innate.bot/innate-app-latest-1.3.0.apk">
        Direct APK download.
      </Card>

      <Card title="iOS TestFlight" icon="apple" href="https://testflight.apple.com/join/YeChe4A7">
        Join the iOS beta on TestFlight.
      </Card>
    </CardGroup>

    For the full feature list and current version numbers, see the [Controller App overview](/robots/innate-controller-app).

    Every MARS robot comes with a leader arm attachable to your phone:

    <Frame caption="The arm is plugged in your phone with a double USB-C cable">
      <img src="https://mintcdn.com/innateinc/hx7RaA7br-n-YY5y/images/main/robots/mars/control-via-app-leader-arm.png?fit=max&auto=format&n=hx7RaA7br-n-YY5y&q=85&s=7570aa191ea84b454a47b179996e8aca" width="375" data-path="images/main/robots/mars/control-via-app-leader-arm.png" />
    </Frame>

    The app automatically recognizes your arm. Press the red **Arm** button to control MARS with the leader arm — MARS's arm should start mirroring your movements within a second. If it doesn't, check that the USB-C cable is seated on both ends and that the arm shows as connected in the app. For best results, stand behind the robot while teleoperating.

    <Warning>
      **Using an iPhone?** The leader arm connects over USB-C and doesn't work with iOS devices yet. Ping us on [Discord](https://discord.com/invite/KtkyT97kc7) and we'll get you a free Android phone for leader arm teleoperation.
    </Warning>
  </Tab>

  <Tab title="Web app">
    Open the web app at `https://<robot-ip>` (its IP address — the `.local` hostname works too but is slower; see the [web app overview](/robots/web-app)) and use the **Teleop** page: live video, an on-screen joystick (or `WASD` / arrow keys), head tilt, and robot speech (type a line and the robot says it). You can also **listen to the robot's microphone** — toggle the mic button on the video to hear what it hears (it starts muted). To teleoperate the arm, plug the leader arm into the computer running the browser, click **Connect arm**, then **Engage follow** — the robot's arm mirrors the leader. The panel also has **Reboot servos** and a **Torque** toggle.

    <Warning>
      Leader-arm teleop needs **Chrome or Edge** (it uses WebSerial), on the robot's HTTPS page. Driving, video, and speech work in any modern browser.
    </Warning>

    See the [web app overview](/robots/web-app) for details.
  </Tab>
</Tabs>

### What the leader arm is (and isn't)

The leader arm is a **teleoperation controller**, not a second robot. You pose it joint-by-joint and MARS's own arm mirrors the motion, puppet-style — so a few things that look like missing pieces are by design:

* **It has no camera.** All perception comes from MARS's onboard cameras. The leader arm only reports its joint angles.
* **The tip is a spring-loaded trigger, not a gripper.** Squeezing the trigger drives MARS's grasper open/closed; it doesn't grasp anything itself.
* **Its segment proportions differ from the robot's arm, and that's fine.** Teleoperation maps joint angles, not absolute reach, and training only records the *robot's* joint state plus its camera feeds — never the leader arm's geometry. So the difference in segment lengths has no effect on the skills you train.

In other words, the leader arm is how you *demonstrate* a task; the picking, seeing, and grasping all happen on MARS. Here it is being used to record a manipulation dataset:

<iframe width="100%" height="420" src="https://www.youtube.com/embed/dr1TuHpc_94" title="Recording a manipulation dataset with the leader arm" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowFullScreen />

## Connecting to a Robot (Wi-Fi + BLE)

The app discovers the robot over Bluetooth, puts it on your Wi-Fi (a phone hotspot works too), then connects over the network. The full flow, with screenshots, lives here:

<Card title="Connecting to a robot" icon="wifi" href="/robots/innate-controller-app/connecting-to-a-robot">
  Bluetooth pairing, Wi-Fi setup, and what to do when the robot changes network.
</Card>

Two details worth knowing:

* The robot publishes a `.local` hostname (for example `mars-robot.local`), so you can still reach it if its IP address changes.
* Once connected, you can check the robot's current IP in **Configuration** -> **WiFi**.

## Connecting via SSH

SSH gives you a terminal directly on the robot (username `jetson1`, password `goodbot`) over Wi-Fi, Ethernet, or USB-C. Full instructions for all three methods, including hostname rules and static-IP setup per OS:

<Card title="Connecting via SSH" icon="terminal" href="/robots/mars/connecting-via-ssh">
  The complete SSH reference — Wi-Fi, Ethernet, and USB-C recovery.
</Card>
