CLI alternative to Stellantis (Peugeot / Citroën / DS / Opel) update applications for car infotainment system (NAC / RCC firmware and navigation maps), hopefully more robust.
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 flash drice that has to be used to upload the firmware/map update to the car.
Updates are exclusively downloaded from the official Stellantis website.
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
- Lightweight self-contained executable that can run on multiple platforms: Windows, Linux, MacOS
The command line executable can be invoked in a terminal:
$ 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 car infotainment system following stellantis instructions.
For example for Peugeot:
The command line executable supports multiple arguments, refer to the help message for more information.
$ psa-update --help
CLI alternative to Peugeot/Citroën/Opel/DS update applications for car infotainment system (NAC/RCC firmware and navigation maps), hopefully more robust. Supports for resume of downloads.
Usage: psa-update [OPTIONS] [VIN]
Arguments:
[VIN] Vehicle Identification Number (VIN) to check for update
Options:
--map <map> Sets the map to check for update. Supported maps:
- afr: Africa
- alg: Algeria
- asia: Asia
- eur: Europe
- isr: Israel
- latam: Latin America
- latam-chile: Latin America Chile
- mea: Middle East
- oce: Oceania
- russia: Russia
- taiwan: Taiwan
--silent Sets silent (non-interactive) mode
--download Automatically proceed with download of updates. Previous downloads will be resumed.
--extract <extract> Location where to extract update files. Should be the root of an empty FAT32 USB drive.
--sequential-download Forces sequential download of updates. By default updates are downloaded concurrently.
-h, --help Print help
-V, --version Print version
A silent (non-interactive) mode can be activated using the --silent
flag.
For example, to check for updates and automatically download and extract them to a USB drive, you can use the following command:
$ psa-update --silent --download --extract /path/to/usb/drive
For the transfer of updates to the car, a USB flash drive 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 and empty.
Note
When using Windows, if the USB flash drive 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 flash drive using FAT32. The official vendor application presumably uses fat32format from Ridgecrop Consultants Ltd to achieve this.
On Linux, OpenSSL is required. On Windows and MacOS, nothing is required, the operating system TLS framework is used.
Binaries are available for Windows (x86-64), Linux (x86-64) and MacOS (x86-64 and AArch64/ARM64) in the 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).
To build and run from source code using stable rust compiler toolchain (version 1.81+):
$ git clone https://github.com/zeld/psa-update.git
$ cd psa-update
$ cargo build --release
$ ./target/release/psa-update --version
The table below quickly compares psa-update
with other available tools I'm aware of.
Open source:
Tool | Type | Platform | Language | Download updates | Format USB drive | Extract to USB drive |
---|---|---|---|---|---|---|
psa-update | Terminal | Windows / Linux / MacOS | English | ✅ (with resume) | ❌ | ✅ |
peugeot-tools | Terminal | ? (build from source) | English | ✅ (with resume) | ❌ | ❌ |
Others:
Tool | Type | Platform | Language | Download updates | Format USB drive | Extract to USB drive |
---|---|---|---|---|---|---|
Official (Peugeot Update, Citroën Update, Opel Update, DS Update) | Desktop app | Windows / MacOS | Multi | ✅ (with resume) | ✅ | ✅ |
Peugeot Update alternative | Desktop app | Windows | French | ✅ (with resume) | ❌ | ❌ |
Mittns Toolbox | Desktop app | Windows | Multi | ✅ | ✅ | ✅ |
Download of updates is possible behind a proxy provided the http_proxy
and https_proxy
environment variables are correctly set.
Using a Linux or MacOS terminal:
export http_proxy=<host>:<port>
export https_proxy=<host>:<port>
Using a Windows CMD prompt:
SET http_proxy=<host>:<port>
SET https_proxy=<host>:<port>
Logging can be enabled using the RUST_LOG
variable. For exemple to enable debug
log level:
RUST_LOG="debug" ./psa-update
- Inspired from the Linux script in this French forum post
- For the list of navigation maps, and associated content, this French forum post
- List of firmware and map updates on this site