> For the complete documentation index, see [llms.txt](https://help.security.gallagher.com/knowledge-hub/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.security.gallagher.com/knowledge-hub/products/cc-hardware/controllers/controller-6000/troubleshoot/controller-6000-dip-switch-8-recovery.md).

# DIP switch 8 recovery

Recover a Controller 6000 from a failed flash state using the DIP switch 8 procedure.

DIP Switch 8 in conjunction with DIP switch 2 can be used to **attempt to recover** a controller if it is in a bad flash state. For example, run LED solid on, or a 4, 5, or 6 flash state.

> ⚠️ **IMPORTANT - Last resort only:** DIP Switch 8 should be used as a last resort to recover the Controller, and only if the controller has failed. If you are not sure whether you should perform a DIP Switch 8 Recovery, **contact the Gallagher Technical Support Team for advice**.

> ⚠️ **Performing a DIP Switch 8 Recovery will delete and recreate file systems on the controller.** All configuration, events and alarms will be lost.

After the procedure the controller will need to be brought back online as if it were a new controller (DIP Switch 2). You will also need to check the controller is running the correct version of software after recovery is complete.

> ⚠️ **Version floor:** Once controllers have been upgraded to **v8.20 (Linux) or later**, factory resetting will **not** bring the Controllers back to v8.10 (WinCE) or earlier.

***

## Recovery procedure

1. From the Controller Software drop-down list (on the **Software** tab of the Controller properties), select **None Selected**. Then apply.
2. Power down the Controller. Turn **DIP Switch 2 and 8 ON** (all other DIP Switches OFF).
3. Power on the Controller to begin the recovery sequence. This may take 1 to 2 minutes. Wait until the Controller goes into a **6-flash state**.
4. Turn **DIP Switch 8 OFF** and wait. **Do not remove power** from the Controller.
5. Once the Controller is back online, ensure you turn **DIP Switch 2 OFF** (assuming the controller picks up its IP address from the network). If recovery was successful, the Controller will start up and initialise the same as a Controller being brought online for the first time. The Controller code will need to be upgraded, and the controller's certificate will need to be revalidated (**Override** from the Status and Overrides tab, see [Revalidate Certificate](/knowledge-hub/products/cc-hardware/controllers/controller-6000/configure/controller-6000-revalidate-certificate.md)).
6. From the Controller Software drop-down list (on the Software tab), reselect the correct software version for this site and click **Apply** to upgrade the Controller.

> 🎥 **Video guide:** [YouTube: Controller 6000 DIP Switch 8 Recovery](https://www.youtube.com/embed/8HanvvJJqaA)

> **Note (from v8.20):** Controllers going through a DIP switch 8 recovery process will briefly exhibit a **three-flash pattern** (indicating no IP address) before settling on the six-flash pattern.

***

## Performing DIP Switch 8 on an 8.50+ controller

If a site is running CC v8.50+ the site can choose to **block the Server from making a connection to the C6000 directly** (for example, via firewall, or just not setting up a network route). This may be done to improve security or simplify network configuration. It is possible because from v8.50 the Controller initiates the connection to the Server, not the reverse.

> ⚠️ **Critical compatibility issue:** If a factory reset (DIP Switch 8) is performed on a C6000 running v8.90, it will revert to **v8.40 firmware** which does **not support** the v8.50+ controller-initiated connection model. The controller will then remain offline.

### Workaround

1. Create a new C6000 in Configuration Client and set its firmware version to **8.40**. This will allow the controller to be connected to from the server (server-initiated connection works on 8.40).
2. **Upgrade the Controller firmware** to a current version as soon as possible.

***

## DIP Switch 8 behaviour by firmware version

| Controller | Running firmware | Firmware after DIP Switch 8              |
| ---------- | ---------------- | ---------------------------------------- |
| 6000       | 8.40             | 8.40                                     |
| 6000       | 8.90             | **8.40** (downgrades, see warning above) |

For the full upgrade, downgrade and defaulting matrix, see [Upgrading, Downgrading, Defaulting and Compatibility](/knowledge-hub/products/cc-hardware/controllers/controller-6000/configure/controller-6000-upgrading-downgrading-defaulting-compatibility.md).

***

## C6000 High Spec / Enhanced (C300101) running v8.10 firmware: failure to come back online after Factory Reset

> ⚠️ **Critical:** Gallagher recommends **not** to factory reset Controller 6000s without involving Tech Support.

### Cause

When a controller is upgraded to v7.80 or above, the factory WinCE image must be replaced to support DHCP. If the controller is then factory-reset, it continues using the **later version of WinCE but with an older factory controller application**. This causes a compatibility issue if the controller had been directly upgraded to v8.10.

### Symptoms

* The C6000 HS/Enhanced will take an IP address.
* The controller shows an **inbound** connection in the TCP Sender page (web-browse).
* On TCP Exchange there will **not** be an outbound connection.

Command Centre log errors:

```
CCNTBertServ[1dec:0694], GENERAL, [insert IP here] CM(logSSLError) -- [reason: 1051]
error:1409441B:SSL routines:ssl3_read_bytes:tlsv1 alert decrypt error(s3_pkt.c:1498)
SSL alert number 51
```

> ⚠️ **Unrecoverable in the field:** The controller will not be able to connect to Command Centre in this state. **It must be sent back to Gallagher for repair.**

### Prevention - intermediate upgrade step required

Do **not** upgrade C6000 HS/Enhanced Controllers directly to v8.10 from any version older than v7.80.

Instead, upgrade High Spec controllers to **v7.80, v7.90 or v8.00 firmware** before upgrading to v8.10. This procedure replaces the factory WinCE OS with one that is compatible with older versions of the controller application.

This will no longer be a problem when Controllers are upgraded to v8.20 and beyond (which uses Linux).

> ⚠️ **Important:** If the High Spec/Enhanced controller is upgraded to 8.10 in this manner, downgrading to 7.10 again will result in the same symptoms as DIP Switch 8+2 (that is, the controller becomes unrecoverable).

See also [Unable to Bring a 6000 HS Online](/knowledge-hub/products/cc-hardware/controllers/controller-6000/troubleshoot/controller-6000-unable-to-bring-6000-hs-online.md).

***

🔗 **Related**

* [Revalidate Certificate](/knowledge-hub/products/cc-hardware/controllers/controller-6000/configure/controller-6000-revalidate-certificate.md). Required after a recovery to bring the controller online.
* [Upgrading, Downgrading, Defaulting and Compatibility](/knowledge-hub/products/cc-hardware/controllers/controller-6000/configure/controller-6000-upgrading-downgrading-defaulting-compatibility.md). The full firmware matrix.
* [Unable to Bring a 6000 HS Online](/knowledge-hub/products/cc-hardware/controllers/controller-6000/troubleshoot/controller-6000-unable-to-bring-6000-hs-online.md). The related High Sec brick scenario.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.security.gallagher.com/knowledge-hub/products/cc-hardware/controllers/controller-6000/troubleshoot/controller-6000-dip-switch-8-recovery.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
