# Controller

This guide will show you how to use the **XREAL Light controller** and **XREAL phone controller**. The tutorial will demonstrate how to create apps using controllers as an interaction model.

Controllers provide a simple way for users to navigate in mixed reality. In the latest version, NRSDK supports two types of controlling methods: **XREAL Light controller** and **XREAL phone controller**. The XREAL Light controller can be paired with a XREAL Light computing unit or a mobile phone through Bluetooth. The XREAL phone controller is only available when using the phone as XREAL Light's computing unit.

## How to Use Your Phone as a Controller

![image4](https://nrealsdkdoc.readthedocs.io/en/latest/_images/controller04.png)

<br>

| Controller Features | Description                                                                                                                                           |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| 3DoF Tracking       | 3 degrees of freedom                                                                                                                                  |
| Touchpad            | **Press** = Trigger Button. Can detect touching and clicking. Customizable for your app, e.g. scrolling.                                              |
| App Button          | **Press and hold** to recenter your controller. **Press** can be customized for your app, e.g. opening an in-app menu or performing a special action. |
| Home Button         | **Press and hold** to open Exit App Window. **Press** can be customized for in-app action, e.g. return to the previous step.                          |

## How to Use the XREAL Light Controller

![image1](https://nrealsdkdoc.readthedocs.io/en/latest/_images/controller01.png)

**On the front**

| Controller Features | Description                                                                                                                                                                                                                                                            |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 3DoF Tracking       | 3 degrees of freedom                                                                                                                                                                                                                                                   |
| Touchpad            | **Press** = Trigger Button. Can detect touching and clicking. Customizable for your app, e.g. scrolling.                                                                                                                                                               |
| App Button          | **Press and hold** to recenter your controller. **Press** can be customized for your app, e.g. opening an in-app menu or performing a special action. ( **Pay attention:** For XREAL Light Controller, pressing the App Button equals to pressing the Touchpad Button) |
| Home Button         | **Press and hold** to open Exit App Window.\</font> **Press** can be customized for in-app action, e.g. return to the previous step.                                                                                                                                   |
| LED Light           | <p>Display controller status<br></p>                                                                                                                                                                                                                                   |

* **On the back**

| Controller Features | Description                                                                                                                                                   |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Charging pins       | The three bottom-facing charging pins connect the controller with the computing unit. It is also used to send data from the computing unit to the controller. |
| Power Switch        | The XREAL Light controller on/off switch is below the charging spots. Green means the power is on, and red means the power is off.                            |

* XREAL **Light Controller LED Guide**

See **LED demo** below:

![](https://nrealsdkdoc.readthedocs.io/en/latest/_images/controller02.gif)

* **Connecting the** XREAL **Light Controller**

1. Make sure the Bluetooth on your Neal Light computing unit/or Android mobile phone is on. (The Bluetooth on XREAL Light computing unit is on as default.)
2. Turn the XREAL Light controller power switch on. Long press the touchpad until the green light starts blinking.
3. Put the XREAL Light controller on the computing unit, and they will be paired automatically.
4. If pairing is successful, the LED will stop blinking and become solid green. If you cannot complete this step, remove all other controllers in the Bluetooth record list and try again.

* **Charging the XREAL Light Controller**

![
](https://nrealsdkdoc.readthedocs.io/en/latest/_images/controller03.gif)

Magnetically attach to the XREAL Light computing unit. Battery power will be shared between the two whether the controller is on or off.

*The lithium battery in the controller is not removable. Please do not attempt to open the controller. Damage caused this way cannot be fixed.*

Please refer to the following sections to start developing with XREAL controller in Unity:

{% content-ref url="../../development/input-and-camera" %}
[input-and-camera](https://xreal.gitbook.io/nrsdk/development/input-and-camera)
{% endcontent-ref %}

{% content-ref url="../../development/input-and-camera/interact-with-unity-ui-tutorial" %}
[interact-with-unity-ui-tutorial](https://xreal.gitbook.io/nrsdk/development/input-and-camera/interact-with-unity-ui-tutorial)
{% endcontent-ref %}

{% content-ref url="../../development/input-and-camera/customize-phone-controller" %}
[customize-phone-controller](https://xreal.gitbook.io/nrsdk/development/input-and-camera/customize-phone-controller)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://xreal.gitbook.io/nrsdk/nrsdk-fundamentals/xreal-devices/controller.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
