CLI alternative to PSA (Peugeot / Citroën / DS / Opel) infotainment system update (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 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 of RCC / NAC firmware updates, and GPS navigation map updates (NAC only)
- Resume of download in case of failure
- Preparation of USB storage device for car 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 using vehicle VIN as a parameter:
$ psa-update <VIN>
This will check for available RCC or NAC updates, and interactively ask for download and extraction of the firmware update to a USB device.
To check for updates of both firmware and GPS navigation map (NAC only):
$ psa-update <VIN> --map eur
The list of available maps identifiers can be obtained using the help:
$ psa-update --help
Once copied to the USB drive, the update can be applied on the infotainement system following PSA instructions. For example for Peugeot:
Binaries are available for Windows (x86-64), Linux (x86-64) and MacOS (x86-64) 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.54+):
$ git clone https://github.com/zeld/psa-update.git
$ cargo run
Download is possible behind a proxy provided the http_proxy
and https_proxy
environment variables are correctly set.
In a Linux or MacOS shell:
export http_proxy=<host>:<port>
export https_proxy=<host>:<port>
In a Windows CMD prompt:
SET http_proxy=<host>:<port>
SET https_proxy=<host>:<port>
Logging can be enabled using the RUST_LOG
variable. For example 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