Guida pratica · Peugeot 3008 · NAC Wave 4

Un errore, quattro cause: aggiornare il firmware della Peugeot 3008 (seconda serie) senza impazzire

Il tool ufficiale Peugeot Update mostra un solo messaggio, "Versione incompatibile con l'Hardware", per quattro problemi completamente diversi. Questa è la procedura completa via USB che avrei voluto trovare io all'inizio. Vale per Peugeot, Citroën, DS e Opel con sistema NAC Wave 4.

Holti Bitri Holti Bitri 8 min di lettura
Schermo infotainment Peugeot 3008 prima e dopo l'aggiornamento firmware NAC: versione 42.03.31.32 del 2020 a sinistra, versione 44.07.33.32 a destra
Prima e dopo: il NAC della mia 3008 era fermo alla versione 42.03.31.32 del luglio 2020. Dopo la procedura, 44.07.33.32.

Il piano per le ferie era chiaro: stare lontano dal PC.

Ci sono quasi riuscito.

Poi, prima di partire, ho controllato la versione del firmware dell'infotainment della Peugeot 3008 usata che ho comprato a luglio. Se fosse aggiornata all'ultima patch, neanche a dirlo.

Deformazione professionale.

Non lo era. Il precedente proprietario non aveva mai aggiornato né le mappe né il firmware.

Le mappe le ho sistemate in mezz'ora, seguendo alla lettera le istruzioni ufficiali Peugeot.

Il firmware, invece, mi ha tenuto a spipolare per ore, distribuite su più sere, prima di trovare la causa vera.

Questo articolo è la procedura che avrei voluto trovare io all'inizio. Vale per qualsiasi veicolo Stellantis (Peugeot, Citroën, DS, Opel) con sistema NAC Wave 4.


Un solo errore, quattro possibili colpevoli

Il tool ufficiale Peugeot/Citroën/DS/Opel Update mostra un solo messaggio per almeno quattro problemi completamente diversi: "Versione incompatibile con l'Hardware".

Se lavori nel software riconoscerai lo schema: quando un solo messaggio deve coprire quattro casi così diversi, di solito non è un errore di design. È una feature 😂

A schermo il messaggio è sempre identico. Questo spinge la maggior parte delle persone a riprovare la stessa identica cosa, convinte di aver sbagliato loro qualcosa. Io ho perso più tempo così che nel risolvere il problema vero.

Cosa serve prima di iniziare

Il tool ufficiale va benissimo per le mappe. Per il firmware, in certi periodi scarica un file corrotto da un server diverso da quello buono. Lo uso comunque, solo per un dato: il download vero lo faccio a mano, dalla fonte giusta.

Passo 1: trovare lo UIN del NAC

Il VIN identifica l'auto. Lo UIN identifica invece l'unità NAC vera e propria: un codice di 20 caratteri esadecimali, diverso anche se il NAC viene sostituito.

  1. Formatta una chiavetta USB in FAT32.
  2. Inseriscila nell'auto a motore acceso.
  3. Sul touchscreen: Impostazioni, poi Info sistema, poi Versione del sistema.
  4. Seleziona Esporta configurazione o Esporta su USB.
  5. Collega la chiavetta al PC: troverai instkey_<UIN>.xml e packageslist_<UIN>.txt.

Il codice tra instkey_ e .xml è lo UIN.

Passo 2: trovare la versione da installare e il suo UpdateID

Ogni versione firmware ha un numero (esempio: 44.07.33.32_NAC-r0) e un UpdateID a 18 cifre. Due modi per trovarlo: aprire il tool ufficiale con il VIN, oppure cercare le tabelle di versioni mantenute dalla community.

Non serve installare le versioni intermedie una a una. Con licenza e certificati freschi si passa direttamente dalla versione attuale, anche vecchia di anni, all'ultima disponibile.

Passo 3: scaricare il firmware dalla fonte giusta

Qui si gioca la partita. Il file va scaricato direttamente dal server ufficiale Stellantis, non dalla CDN pubblica del tool (a volte corrotta) e non da un mirror terzo.

curl.exe -L -C - --retry 20 --retry-delay 5 --retry-all-errors `
  -o "firmware.tar" `
  "https://majestic-web.mpsa.com/nas/eu/mjb00/NAC_EU/ovip-int-firmware-version/PSA_ovip-int-firmware-version_VERSIONE-CON-TRATTINI_NAC-r0_NAC_EUR_WAVE4.tar"

Se risponde 404, percorso alternativo per le versioni più recenti:

curl.exe -L -C - --retry 20 --retry-delay 5 --retry-all-errors `
  -o "firmware.tar" `
  "https://majestic-web.mpsa.com/nas/eu/mjb00/PSA/mjbsu/PSA_ovip-int-firmware-version_VERSIONE-CON-TRATTINI_NAC-r0_NAC_EUR_WAVE4.tar"

Il flag -C - riprende il download da dove si era interrotto: con file da 5-7 GB, capita, non è un problema.

Prima di procedere, verifico sempre la dimensione del file scaricato contro quella dichiarata dal server:

(Get-Item firmware.tar).Length

Una differenza anche di poche migliaia di byte è indice di un file rotto. Non proseguo, riscarico.

Passo 4: estrarre l'archivio e recuperare l'UpdateID reale

tar -xf firmware.tar

Dentro trovo una struttura SWL\<UpdateID>\. Quel numero è l'UpdateID esatto, da usare al posto di quello trovato online se differisce anche di una sola cifra.

Passo 5: scaricare la licenza

Il firmware da solo non basta: senza una licenza generata su misura per lo UIN e per questa esatta versione, il NAC rifiuta l'installazione.

curl.exe -L -o "licenza.key" `
  "https://majestic-web.mpsa.com/mjf00-web/rest/LicenseDownload?mediaVersion=UPDATE-ID&uin=TUO-UIN"

Rinomino il file seguendo esattamente questo schema:

license_TUO-UIN_UPDATE-ID.key

Se il file contiene errorCode o assomiglia a un messaggio d'errore leggibile, la licenza non è stata generata: UIN o UpdateID sbagliati.

Passo 6: aggiornare le CRL

Dentro SWL\<UpdateID>\Certificates\ ci sono due file .crl, spesso datati all'anno di uscita di quella versione firmware. Con gli anni scadono. Li sostituisco sempre con quelli aggiornati:

curl.exe -L -o "SWL\UPDATE-ID\Certificates\PSA-OVIP-CS-G1.crl" "http://pki.p3cs.com/PSA-OVIP-CS-G1.crl"
curl.exe -L -o "SWL\UPDATE-ID\Certificates\PSA-OVIP-G1.crl"    "http://pki.p3cs.com/PSA-OVIP-G1.crl"

Nessuna controindicazione: anche se le CRL originali fossero già valide, sovrascriverle non rompe nulla. Il tipo di certezza che in un progetto software raramente ti puoi permettere, e qui per una volta te la regalano.

Passo 7: comporre la chiavetta con la struttura esatta

Il NAC si aspetta una struttura di cartelle precisa alla radice della USB:

USB:\
  SWL\
    <UpdateID>\
      Certificates\   (con le CRL fresche)
      Firmware\
      MediaHeader\
      HashList.ini
  license\
    license_<UIN>_<UpdateID>.key

L'errore più comune: la cartella license va nella radice della chiavetta, non dentro SWL\<UpdateID>\. È il dettaglio che passa più facilmente inosservato, e da solo basta a far fallire tutto con lo stesso identico errore generico.

Passo 8: auto offline, poi installazione

  1. Disattivo WiFi e hotspot sull'auto prima di inserire la chiavetta.
  2. Avvio il motore.
  3. Inserisco la USB. Il sistema rileva l'aggiornamento da solo, in caso contrario: Impostazioni, Info sistema, Aggiornamento sistema.
  4. Attendo 30-45 minuti senza spegnere il motore. Uno o più riavvii dello schermo sono normali. Tempo perfetto per un caffè, o per chiedersi che senso abbia un motore a scoppio acceso solo per installare un aggiornamento software.
  5. Verifico che la versione mostrata corrisponda esattamente a quella installata.

Se fallisce ancora

Se arrivi in officina dopo aver seguito questi passi, porta VIN, UIN e le versioni testate: dimostri che non è un problema di procedura, e il tecnico salta dritto alla diagnosi hardware.

Perché ho scritto tutto questo

Non è il mio campo. Non lavoro con auto, non conosco il protocollo NAC, non avevo mai sentito parlare di UIN o CRL fino a quest'estate.

Quello che so fare è affrontare un problema con lo stesso metodo con cui affronto un bug in produzione: isolare le cause una per una, verificare invece di assumere, e non fermarmi al primo tentativo fallito.

Costruire pipeline AI di giorno, fare reverse engineering di un infotainment di sera. Non so se sia preoccupante o semplicemente la mia normalità.

Le ferie lontano dal PC sono finite con PowerShell aperto in giardino. Ci ho fatto pace.

Ho usato Claude come compagno di debug per ricostruire la logica dietro l'errore e organizzare la procedura. Il risultato è qui, gratis, per chi si trova nello stesso punto in cui ero io.

Se ti blocchi durante la procedura, scrivimi.

Questo articolo è uscito anche su LinkedIn. Se preferisci commentare lì: Leggi su LinkedIn →

Domande frequenti

Perché il tool Peugeot Update dice "Versione incompatibile con l'Hardware"?

Lo stesso messaggio copre almeno quattro cause diverse: licenza mancante (pacchetto senza cartella license), certificati di revoca CRL scaduti dentro il pacchetto, file non ufficiale scaricato da un mirror terzo, oppure un file corrotto sulla CDN pubblica del tool. Il messaggio a schermo è identico in tutti i casi, quindi va verificata una causa alla volta.

Cos'è lo UIN del NAC e dove si trova?

Lo UIN è il codice di 20 caratteri esadecimali che identifica l'unità NAC (diverso dal VIN, che identifica l'auto). Si ottiene esportando la configurazione su una chiavetta USB FAT32 dal menu Impostazioni, Info sistema, Versione del sistema: nel file instkey_<UIN>.xml il codice tra instkey_ e .xml è lo UIN.

Devo installare tutte le versioni intermedie del firmware NAC?

No. Con una licenza generata per il proprio UIN e la versione scelta, e con le CRL aggiornate, si passa direttamente dalla versione attuale, anche vecchia di anni, all'ultima disponibile.

Dove va la cartella license sulla chiavetta USB?

Nella radice della chiavetta, accanto alla cartella SWL, non dentro SWL\<UpdateID>\. È l'errore più comune e da solo basta a far fallire l'aggiornamento con lo stesso messaggio generico.

La procedura vale anche per Citroën, DS e Opel?

Sì. Vale per qualsiasi veicolo Stellantis con sistema infotainment NAC Wave 4, quindi Peugeot, Citroën, DS e Opel.

Holti Bitri

Holti Bitri

CTO & AI Innovator, TIG Factory. Quasi vent'anni nell'ecosistema Microsoft, oggi tra architetture cloud, pipeline AI e, a quanto pare, infotainment di seconda mano. LinkedIn · holtibitri.com