Skip to content

Commit

Permalink
Update README with USB device prerequisites
Browse files Browse the repository at this point in the history
  • Loading branch information
zeld authored Nov 8, 2024
1 parent 3efe9ce commit f74c720
Showing 1 changed file with 32 additions and 11 deletions.
43 changes: 32 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# psa-update

CLI alternative to PSA (Peugeot / Citroën / DS / Opel) infotainment system update (NAC / RCC firmware and navigation maps),
hopefully more robust.
CLI alternative to PSA (Peugeot / Citroën / DS / Opel) infotainment system update (NAC / RCC firmware and navigation maps), hopefully more robust.

![Screenshot](screenshot.png)

`psa-update` offers mostly the same features as the official firmware/map update application proposed by the car vendor,
except that it does not format the USB device that has to be used to upload the firmware/map update to the car. Updates
are exclusively downloaded from the official PSA site.
`psa-update` offers mostly the same features as the official firmware/map update application proposed by the car vendor, except that it does not format the USB device that has to be used to upload the firmware/map update to the car.

Updates are exclusively downloaded from the official PSA site.

Features:

- Download updates of RCC / NAC firmwares, and navigation maps (NAC only)
- Resume downloads in case of failure
- Prepares USB flash drive for car infotainment system update
Expand All @@ -18,29 +18,45 @@ Features:
## Usage

The command line executable can be invoked in a terminal:

```shell
$ psa-update
```

This will interactively ask for vehicle VIN, check for available NAC/RCC/map updates, and extract updates to a USB flash drive.

Once copied to the USB drive, the update can be applied on the infotainment system following PSA instructions.
For example for Peugeot:

For exemple for Peugeot:

- [RCC instructions](https://web.archive.org/web/20220719220945/https://media-ct-ndp.peugeot.com/file/38/2/map-software-rcc-en.632382.pdf)
- [NAC instructions](https://web.archive.org/web/20230602131011/https://media-ct-ndp.peugeot.com/file/38/0/map-software-nac-en.632380.pdf)

## Requirements

For the transfer of updates to the car, a USB device is required:

- Recommended size is **32 GB**. Although most updates are smaller than 16 GB, some navigations maps can be larger than 16 GB.
- It must be formatted as **FAT32**.

> Note: When using Windows, if the USB device is larger than 32 GB, it is not possible to format it using FAT32. Alternatives are:
>
> - Create a 32 GB partition and format if as FAT32 and leave the rest unformatted.
> - Use a third-party tool to format the USB device using FAT32. The official vendor application presumably uses [fat32format from Ridgecrop Consultants Ltd](http://ridgecrop.co.uk/index.htm?guiformat.htm) to achieve this.
On Linux, OpenSSL is required. On Windows and MacOS, nothing is required, the operating system TLS framework is used.

## Install

Binaries are available for Windows (x86-64), Linux (x86-64) and MacOS (x86-64 and AArch64/ARM64) in the [releases](https://github.com/zeld/psa-update/releases) section.

To install, simply download and extract the `psa-update` executable.
For other platforms the project can be built from source code (see below).

## Build from source

To build and run from source code using stable rust compiler toolchain (version 1.81+):

```shell
$ git clone https://github.com/zeld/psa-update.git
$ cargo run
Expand All @@ -49,26 +65,31 @@ $ cargo run
## Proxy

Download is possible behind a proxy provided the `http_proxy` and `https_proxy` environment variables are correctly set.
In a Linux or MacOS shell:

Using a Linux or MacOS terminal:

```shell
export http_proxy=<host>:<port>
export https_proxy=<host>:<port>
```
In a Windows CMD prompt:

Using a Windows CMD prompt:

```cmd
SET http_proxy=<host>:<port>
SET https_proxy=<host>:<port>
```

## Logging

Logging can be enabled using the `RUST_LOG` variable. For example to enable `debug` log level:
Logging can be enabled using the `RUST_LOG` variable. For exemple to enable `debug` log level:

```shell
RUST_LOG="debug" ./psa-update
```

## Credits

- Inspired from the Linux script in this french [forum post](https://www.forum-peugeot.com/Forum/threads/app-peugeot-update-logiciel-alternatif-multi-os-v1-5-26-08-2021.119707/)
- For the list of navigation maps, and associated content, this french [forum post](https://forum-auto.caradisiac.com/topic/129967-le-nac-du-3008-ii-et-de-tous-les-v%C3%A9hicules-psa-lisez-en-premier-la-page-n%C2%B012/)
- Inspired from the Linux script in this French [forum post](https://www.forum-peugeot.com/Forum/threads/app-peugeot-update-logiciel-alternatif-multi-os-v1-5-26-08-2021.119707/)
- For the list of navigation maps, and associated content, this French [forum post](https://forum-auto.caradisiac.com/topic/129967-le-nac-du-3008-ii-et-de-tous-les-v%C3%A9hicules-psa-lisez-en-premier-la-page-n%C2%B012/)
- List of firmware and map updates on [this site](https://sites.google.com/view/nac-rcc/)

0 comments on commit f74c720

Please sign in to comment.