# Flashing without disassembly

> Flash the head unit over OBD-II, from sign-in to the success screen.

The whole run takes about 20 minutes.

:::note[TPM 2.0 is required]
Cartoo will not start on a machine without a TPM 2.0 module, and on many
laptops the module is present but switched off in the UEFI. Check this before
you go out to the vehicle — see [Checking for TPM 2.0](/en/guides/tpm/).
:::

## Before you start

### What you need

- A laptop with TPM 2.0 (see above).
- An **ELM327 v1.5 Bluetooth adapter** on the `PIC18F25K80` chip — the
  double-PCB version. Cheaper single-board clones on other chips do not work
  reliably.
- A **USB-A ↔ USB-A cable** (both ends type A, "male-to-male").
- The firmware bundle — a `.food` file.

<details>
<summary>What the adapter looks like, and where to buy it</summary>

Both listings below are the right thing — a v1.5 double-PCB ELM327 on the
`PIC18F25K80`. Match the chip marking, not the case: the blue housing is used
by dozens of different boards.

![ELM327 v1.5 double-PCB adapter, AliExpress listing](../../../../assets/shared/elm327-aliexpress.jpg)

![The same adapter on Taobao](../../../../assets/shared/elm327-taobao.jpg)

</details>

### Wiring

1. Plug the ELM327 into the vehicle's OBD-II port.
2. Connect the head unit to the laptop with the USB-A ↔ USB-A cable.

Both connections have to be in place before you start the pipeline.

## 1. Sign in

Open the sign-in screen in the CRM and scan the QR there. If you cannot, send
the QR — or the short code printed under it — to your manager.

![Sign-in screen with the QR code](../../../../assets/en/0_QR.jpg)

## 2. Open Files

![Main menu with the Files card highlighted](../../../../assets/en/1_FILES.jpg)

## 3. Import the firmware bundle

Files download automatically in the background. To load a bundle you already
have on disk, open the dropdown next to **Download** and pick **Import from
file…**.

:::caution[Import is currently mandatory]
Automatic download is broken at the moment. Do not wait for it — import the
bundle from disk every time, even though the step reads as optional.
:::

![Files window with the Import from file menu open](../../../../assets/en/2_PICK.jpg)

Pick the `.food` bundle.

![File picker showing a .food bundle](../../../../assets/en/3_OPEN.jpg)

## 4. Start the pipeline

Back on the main menu, open **Flashing (no disassembly)**.

![Main menu with the Flashing card highlighted](../../../../assets/en/5_START.jpg)

## 5. Enter the VIN

:::caution
The unit's current software must already be at version 4.1. Flashing an older
version is not supported.
:::

![VIN entry step](../../../../assets/en/4_VIN.jpg)

## 6. Choose how to reach download mode

Use the ELM327 adapter, or skip this if the device is already in download mode (EDL).

![Download mode choice: ELM327 adapter or skip](../../../../assets/en/6_ELM.jpg)

## 7. Pair the adapter

If no adapter is found, open the Bluetooth settings from this screen.

![Device not found, with Open Bluetooth settings highlighted](../../../../assets/en/7_SETTINGS.jpg)

Add the `OBDII` device.

![Windows Add a device dialog](../../../../assets/en/8_BLUETOOTH.jpg)

The pairing PIN is `1234`.

![Bluetooth pairing PIN prompt](../../../../assets/en/9_ELM.jpg)

Back in Cartoo, press **Rescan**. The COM port should now be filled in.

![Device not found, with Rescan highlighted](../../../../assets/en/10_RESCAN.jpg)

## 8. Enter special mode

This reboots the vehicle into Restyle special mode.

![Ready to enter special mode](../../../../assets/en/11_READY.jpg)

## 9. Connect

The device switches to download mode on its own — no wires, no shorting contacts.

![Connecting to the vehicle](../../../../assets/en/12_SPECIAL.jpg)

![Device connected](../../../../assets/en/13_SPECIALOK.jpg)

## 10. Partition backup

Leave **Make a partition backup** checked. It is the only restore point if
flashing fails.

![Partition backup step](../../../../assets/en/14_SKIPBAK.jpg)

:::danger
Unchecking it means there is no way back. If flashing fails the unit may be
left unbootable, and that is entirely at the dealer's own risk.
:::

![Skipping the backup warning](../../../../assets/en/15_SKIPBAKOK.jpg)

## 11. Wait

![Installing software, with per-step progress](../../../../assets/en/16_WORKING.jpg)

## 12. Flashing complete

![Success screen](../../../../assets/en/17_DONE.jpg)

The firmware is on the unit, but the vehicle is not localised yet. Everything
below happens in the car, not in Cartoo.

## 13. Reboot the vehicle

Press and hold **both steering-wheel scroll wheels** at once until the screens
go dark and the unit restarts.

![Steering wheel with the left and right scroll wheels marked](../../../../assets/shared/18_REBOOT.jpg)

## 14. Clear the pop-ups

The car comes back up with a series of dialogs. Answer them in this order.

**Dash cam not recording — start it?** Tick **不再提醒** ("don't remind me
again"), then tap **开启** ("turn on").

![Dash cam dialog with the checkbox and the confirm button marked](../../../../assets/shared/19_DASHCAM.jpg)

**Microphone permission.** Set the validity period to **12个月** (12 months),
then tap **同意授权** ("grant").

![Privacy authorisation screen with the 12-month option and the grant button marked](../../../../assets/shared/20_PRIVACY.jpg)

**ADS software service activation failed.** Expected — the car has no network
at this point. Tap **取消** ("cancel"). Do not retry.

![ADS activation error with the cancel button marked](../../../../assets/shared/21_ADS.jpg)

## 15. Get the activation certificate

Open **RedControl** from the third-party apps tab (三方应用).

![App drawer with the RedControl icon marked](../../../../assets/shared/22_REDCONTROL.jpg)

It shows a QR code. Scan it through the CRM, or send it to your manager — same
as at sign-in. You get back a certificate file named after the VIN,
`<VIN>.cert`.

![RedControl screen: "Show this code to your dealer to obtain a certificate"](../../../../assets/shared/23_CERTQR.jpg)

## 16. Prepare the USB stick

The stick must be formatted **FAT-32** or **exFAT**. Nothing else is read.

Unpack `NEW-USB-FILES-FOR-V4.zip` — it ships alongside the firmware bundle.

![File listing with NEW-USB-FILES-FOR-V4.zip marked](../../../../assets/shared/24_USBZIP.jpg)

Copy all four folders — `DeepalConfig`, `DeepalInstall`, `DeepalObb`,
`DeepalOverlays` — to the stick.

![Copying the four Deepal folders onto the FAT-32 stick](../../../../assets/shared/25_USBCOPY.jpg)

Then put the `.cert` file **in the root of the stick**, next to the folders —
not inside any of them.

![Root of the stick: four folders plus the certificate file, named after the VIN](../../../../assets/shared/26_CERTROOT.jpg)

## 17. Install from the stick

Plug the stick into the car and wait for the install menu to come up. Tap
**INSTALL ALL**.

![Install menu with the INSTALL ALL button marked](../../../../assets/shared/27_INSTALLALL.jpg)

When that finishes, scroll to **Resources (OBB)** and pick one language —
**EN**, **ES**, **RU** or **UA** — then tap **COPY** on the right of that row.

![Resources (OBB) list with the four language entries](../../../../assets/shared/28_LANGCOPY.jpg)

:::caution
Copy one language only. This is the language the vehicle interface will be in.
:::

Wait for the copy to report success before moving on.

## 18. Switch the Android system language

The locale files are on the unit now, but Android is still set to Chinese.

Open the **Settings** APK from the app drawer — the green gear, not the car's
own settings.

![App drawer with the Settings APK marked](../../../../assets/shared/29_SETTINGSAPP.jpg)

Tap **All Settings**.

![Settings panel with All Settings marked](../../../../assets/shared/30_ALLSETTINGS.jpg)

Scroll down to **系统** (System).

![Android settings list with 系统 marked](../../../../assets/shared/31_SYSTEM.jpg)

Open **语言和输入法** (Languages & input) and select the language you copied in
step 17:

- **EN** → English (United States)
- **ES** → Español (España)
- **RU** → Русский (Россия)
- **UA** → Українська (Україна)

![System submenu with 语言和输入法 marked](../../../../assets/shared/32_LANGUAGE.jpg)

## 19. Verify

Go back to the car's own settings and wait for the translation to appear. Once
Control / Driving / Energy / Sound / Display are in the target language, the
job is done.

![Vehicle settings rendered in English](../../../../assets/shared/33_RESULT.jpg)