# Recovery Mode

{% hint style="danger" %}
Those using REV ION products on REVLib 2026 or newer must use [REV Hardware Client 2](https://docs.revrobotics.com/rev-hardware-client-2).
{% endhint %}

Sometimes, when updating the firmware on an ION Control System Device, it is possible for the process to be interrupted or for the firmware to be corrupted by a bad download or other type of interruption in data transfer. In this state, the Status LED will be dark or dim and the device will fail to operate. There is a built-in recovery mode that can force your device to accept new firmware even if the controller seems to be bricked and the procedure is outlined below:

{% hint style="warning" %}
Performing this procedure will erase all data and settings on the device. Be sure to burn your desired settings to flash after recovering the device
{% endhint %}

### Materials Needed

* A small tool, like a straightened paper clip or a SIM card removal tool, to press the Mode Button&#x20;
* Data-capable USB-C to USB-A cable
* A Windows computer with the [REV Hardware Client](https://docs.revrobotics.com/rev-hardware-client/gs/install)[ Installed](https://docs.revrobotics.com/rev-hardware-client/gs/install) and updated to the latest version

### Recovery Mode Steps

1. With the Device powered off, press and hold the Mode Button
2. While still holding the Mode Button, connect the Device to the computer using the USB-C cable - the Status LED will not illuminate - this is expected.
3. With the REV Hardware Client running on the computer, wait a few seconds for the audible tone or icon for the device to be recognized in recovery mode then release the Mode Button - no lights will be present on the device during this stage of the process, this is expected
4. Select the Device in Recovery Mode from the REV Hardware Client window<br>

   <figure><img src="https://3899616195-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MGEfA6CxjaSQiH5kHxn%2Fuploads%2FsuPan7LgRKGxEduz8bVI%2Fimage.png?alt=media&#x26;token=dfb9a9d9-e6f5-48d4-a117-d9cef66c0d87" alt=""><figcaption><p>Example of a Device in Recovery Mode</p></figcaption></figure>
5. From the Choose a Device type dropdown, choose - the firmware that matches the device you are attempting to recover. *It is possible to install incorrect firmware on your device.*<br>

   <figure><img src="https://3899616195-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MGEfA6CxjaSQiH5kHxn%2Fuploads%2FPlxuPBgMwlHEYb96ulzT%2Fimage.png?alt=media&#x26;token=b5e4236b-fc46-47d7-9992-6e26388c8239" alt=""><figcaption></figcaption></figure>
6. Choose the latest version of Firmware from the dropdown and then click update<br>

   <figure><img src="https://3899616195-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MGEfA6CxjaSQiH5kHxn%2Fuploads%2FgCxhLvA20IZgY5xOxkjl%2Fimage.png?alt=media&#x26;token=876bbf97-778a-44a0-a7ac-fe0b87ead6cd" alt=""><figcaption><p>Selecting the firmware on a SPARK MAX in recovery</p></figcaption></figure>
7. Wait for the software update to complete<br>

   <figure><img src="https://3899616195-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MGEfA6CxjaSQiH5kHxn%2Fuploads%2FCglKL7jnz8vYlCVy42J1%2Fimage.png?alt=media&#x26;token=887a8d3f-a5a1-48a9-91a7-97d7d9f8d26b" alt=""><figcaption></figcaption></figure>
8. Power cycle your device (unplug and plug in USB-C) click on the device's icon, and then clear any sticky faults

{% hint style="success" %}
Firmware Recovery Complete!&#x20;
{% endhint %}


---

# 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://docs.revrobotics.com/rev-hardware-client/ion/recovery-mode.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.
